在信息安全领域,Web打点与WAF绕过技术是渗透测试人员和安全研究人员必须掌握的重要技能。本文旨在详细介绍Web打点的基本概念、常用方法以及如何绕过WAF(Web应用防火墙)的技术。
一、什么是Web打点
Web打点(Web Exploitation)是指通过对Web应用的漏洞进行利用,从而获取未授权的信息、执行未授权的操作或控制整个应用。常见的Web打点技术包括SQL注入、跨站脚本攻击(XSS)、文件包含漏洞、命令注入等。
1. SQL注入
SQL注入是一种常见的攻击方式,通过在Web应用的输入字段中插入恶意的SQL代码,攻击者可以绕过身份验证、读取或修改数据库中的数据。
常见的SQL注入类型:
基于错误的SQL注入:通过触发数据库错误信息,获取数据库结构信息。
联合查询注入(UNION-based SQL Injection):使用UNION操作符合并多个查询结果,获取敏感数据。
盲注(Blind SQL Injection):通过布尔型或时间延迟来获取数据库信息。
- 跨站脚本攻击(XSS)
XSS攻击通过在Web页面中注入恶意脚本,利用受害者的浏览器执行脚本,窃取Cookie、会话等敏感信息。
XSS的主要类型:
反射型XSS(Reflected XSS):恶意脚本通过URL参数传递并在页面中立即执行。
存储型XSS(Stored XSS):恶意脚本存储在服务器端,当用户访问相关页面时执行。
DOM型XSS(DOM-based XSS):恶意脚本通过修改页面的DOM结构执行。
- 文件包含漏洞
文件包含漏洞通过包含服务器上的本地文件或远程文件,执行恶意代码。
文件包含的类型:
本地文件包含(LFI):包含服务器上的本地文件。
远程文件包含(RFI):包含远程服务器上的文件。
- 命令注入
命令注入通过在Web应用中注入恶意的操作系统命令,执行未授权的操作。常见于不安全的系统命令调用。
二、WAF绕过技术
WAF是一种用于保护Web应用免受各种攻击的安全设备或服务。为了提高渗透测试的有效性,掌握绕过WAF的技术是非常必要的。
1. 绕过WAF的基本思路
混淆技术:通过编码、分割Payload、使用特殊字符等方式,使恶意Payload难以被WAF识别。
利用WAF的误判:分析WAF的规则集,找到规则的误判和漏洞。
分块传输:利用HTTP协议的分块传输机制,分割恶意Payload,使其避开WAF检测。
常用的WAF绕过方法
编码与混淆
URL编码:将Payload进行URL编码,绕过WAF的检测。
Base64编码:将Payload进行Base64编码,然后在服务器端解码执行。
Unicode编码:利用Unicode编码,将恶意字符串转换为不同的编码形式。分割Payload
字符串拼接:将恶意Payload分割成多个部分,然后在服务器端拼接执行。
参数分割:将恶意Payload分割到多个参数中,绕过WAF的整体检测。使用特殊字符
注释符:利用SQL注释符(如--、/.../)进行混淆。
特殊符号:使用特殊符号(如%00、\r\n等)绕过WAF的规则。HTTP协议特性
分块传输编码(Chunked Transfer Encoding):利用HTTP 1.1的分块传输编码,将恶意Payload分块发送,绕过WAF检测。
Content-Type绕过:通过修改Content-Type头(如multipart/form-data),绕过WAF对请求体的检测。
- 实战案例
案例1:SQL注入绕过WAF
假设我们有一个SQL注入的Payload:' OR 1=1 --。直接发送可能会被WAF拦截,我们可以尝试以下绕过方式:
URL编码:%27%20OR%201%3D1%20--
Base64编码:将Payload进行Base64编码后在服务器端解码执行。
注释符混淆:'//OR//1=1/**/--
案例2:XSS绕过WAF
对于一个简单的XSS Payload:<script>alert('XSS')</script>,我们可以尝试以下绕过方式:
URL编码:%3Cscript%3Ealert(%27XSS%27)%3C/script%3E
Unicode编码:将<script>转换为Unicode编码,如%u003Cscript%u003E.
DOM拼接:使用DOM操作拼接脚本,如.
个人记录,也希望能够帮到你哦~
版权归原作者 xixixi77777 所有, 如有侵权,请联系我们删除。