Web应用防火墙(WAF)作为现代网络安全的重要组成部分,通过监控和分析HTTP/HTTPS流量,识别和过滤恶意请求,以保护Web应用程序免受各种攻击。然而,攻击者为了绕过WAF的防护,会采用各种Payload混淆技术。列出常用的40种绕过WAF防火墙的Payload混淆技术,供参考学习。
1. HTML编码混淆
HTML编码是一种将特殊字符转换为其HTML实体表示的方法,如将<转换为<,>转换为>,"转换为"等。通过将Payload中的特殊字符转换为HTML实体,可以绕过WAF对这些字符的检测。例如,一个XSS攻击Payload <script>alert(1)</script> 可以被编码为 <script>alert(1)</script>。
2. URL编码混淆
URL编码(也称百分号编码)是将数据转换为可以在URL中安全传输的格式。特殊字符会被转换为ASCII值的十六进制表示,并在前面加上百分号(%)。例如,空格被编码为%20,<被编码为%3C,>被编码为%3E。攻击者可以通过URL编码来混淆Payload,使其在WAF中难以被识别。
3. 双重URL编码混淆
双重URL编码是对已经进行了一次URL编码的字符串,再进行一次URL编码。例如,字符<经过第一次URL编码后变为%3C,再进行第二次URL编码后变为%253C。这种技术使得Payload更加难以被WAF识别和解析。
4. Unicode编码混淆
Unicode编码使用特定的字符编码来表示字符,如%u0027代表单引号。通过Unicode编码,攻击者可以将Payload中的特殊字符转换为WAF难以识别的形式。
5. Base64编码混淆
Base64编码通常用于处理二进制数据,将其转换为64个可打印字符的组合。攻击者可以对Payload进行Base64编码,然后在目标服务器上解码执行。这种技术可以有效绕过WAF对二进制数据的检测。
6. XOR加密混淆
XOR加密是一种简单的加密技术,通过明文和密钥的异或运算生成密文。攻击者可以使用XOR加密对Payload进行加密,然后在目标服务器上解密执行。这种技术增加了WAF识别和检测Payload的难度。
7. 字母大小写转换混淆
某些WAF可能只过滤全大写或全小写的敏感字符。攻击者可以通过混合使用大小写字母(如将select改为SelEct)来绕过WAF的检测。
8. 空格过滤绕过
WAF通常会过滤空格字符。攻击者可以使用空白符(如%09、%0a、%0b、%0c、%0d、%a0等)或加号(+)作为空格的替代,以绕过WAF的空格过滤规则。
9. 双关键字绕过
针对WAF可能只过滤一次关键字的情况,攻击者可以将关键字拆分为两部分(如将SELECT拆分为SEL和ECT),以绕过WAF的过滤机制。
10. 内联注释绕过
在SQL注入攻击中,攻击者可以使用内联注释(如MySQL的/*!*/)来绕过WAF对特定SQL语句的检测。内联注释可以使WAF在解析SQL语句时忽略注释部分的内容。
11. 请求方式差异绕过
某些WAF可能对不同请求方式(如GET、POST、PUT等)的处理规则不一致。攻击者可以利用这一点,通过非常规的HTTP方法(如TRACE、OPTIONS等)来绕过WAF的检测。
12. 超大数据包绕过
WAF通常有数据包大小的限制,以防止大型攻击载荷。攻击者可以通过发送超大的数据包,使WAF在处理时耗尽资源或发生错误,从而绕过WAF的检测和保护机制。
13. 随机化请求绕过
攻击者可以改变请求头、Cookie、User-Agent等信息,并在每次请求时进行随机选择。这种随机化策略可以增加WAF的检测复杂度,使攻击者更具隐蔽性。
14. 分段传输绕过
分段传输是将攻击载荷分成多个小块进行传输,以混淆和绕过WAF的检测。通过分段传输,攻击者可以将Payload分散在多个请求中,使其难以被WAF识别和拦截。
15. IP伪造绕过
攻击者可以通过伪装源IP地址来绕过WAF的防御机制。通过设置任意的源IP地址,攻击者可以使WAF无法正确追踪和过滤恶意请求。
16. 利用WAF自身的缺陷
不同版本的WAF之间可能存在解析差异,攻击者可以利用这些差异来绕过WAF的检测。此外,WAF规则库中可能存在漏洞或不足,攻击者可以设计针对性的攻击载荷来绕过WAF的防护。
17. 查找真实IP绕过
攻击者可以通过域名指向云WAF地址后反向实现代理,查找相关的二级域名及同一域名注册者的其他域名解析记录,或使用快速扫描工具对全网IP进行扫描,以找到网站的真实IP,从而绕过WAF的防护。
18. 字符替换或添加注释混淆
攻击者可以在原始攻击载荷中插入无害字符或注释符号来扰乱WAF的解析规则。例如,在SQL注入Payload中添加无害的注释符号(如--),或在XSS Payload中插入无害的字符(如空格、换行符等),以绕过WAF的检测。
19. 修改请求头绕过
通过修改请求头中的信息,攻击者可以绕过一些基于请求头的WAF规则。例如,修改User-Agent字段或添加自定义请求头,使WAF认为请求是合法的。
20. 参数污染绕过
参数污染是指在URL参数中添加恶意的非法字符或多次提交相同的参数,使WAF无法正确解析请求,从而绕过防护。例如,在URL中添加多个相同的参数,或在参数值中插入非法字符,以扰乱WAF的解析过程。
21. 嵌套请求混淆
攻击者可以在一个请求中嵌套另一个请求,通过多层编码或混淆来隐藏真实的攻击载荷。例如,可以在一个JSON请求中嵌入另一个经过编码或混淆的JSON请求,当WAF解析外层请求时,内层的攻击载荷可能不会被立即检测到。
22. 使用特殊字符集
不同的字符集可能包含WAF未识别的特殊字符。攻击者可以尝试使用不同的字符集(如UTF-7、ISO-8859-1等)来编码Payload,以增加WAF解析的难度。
23. 混淆函数名或变量名
在SQL注入或远程代码执行攻击中,攻击者可以尝试使用不同的函数名或变量名来绕过WAF的关键词过滤。例如,将CONCAT替换为@@CONCAT@@或其他自定义函数名。
24. 编码转换攻击
攻击者可以将Payload转换为不同的编码格式,并在请求中混合使用多种编码。例如,将一部分Payload使用Base64编码,另一部分使用URL编码,以增加WAF解析的复杂性。
25. 利用参数截断
在某些情况下,WAF可能无法正确处理被截断的参数。攻击者可以尝试发送被截断的参数,使得WAF无法正确解析整个Payload,从而绕过检测。
26. 混淆请求参数顺序
WAF可能依赖于请求参数的特定顺序来识别攻击载荷。攻击者可以尝试改变请求参数的顺序,使WAF无法正确匹配预定义的规则集。
27. 利用WAF的延迟处理
某些WAF在处理大量请求时可能存在延迟。攻击者可以尝试在短时间内发送大量请求,使WAF处理不过来,从而可能忽略某些攻击载荷的检测。
28. 混淆内容类型
攻击者可以尝试改变请求的内容类型(如将application/x-www-form-urlencoded改为multipart/form-data),以绕过WAF对特定内容类型的检测规则。
29. 利用Cookie注入
在某些情况下,WAF可能不会检查Cookie中的值。攻击者可以尝试将攻击载荷隐藏在Cookie中,以绕过WAF的检测。
30. 利用HTTP头注入
类似于Cookie注入,攻击者也可以尝试将攻击载荷隐藏在HTTP头中(如Referer、User-Agent等),这些头信息有时可能不会被WAF仔细检查。
31. 编码嵌套与重复
攻击者可以将Payload进行多层编码,并在编码过程中重复嵌套编码步骤,使得WAF在解码过程中难以一次性还原出原始Payload,从而增加检测难度。
32. 自定义协议混淆
某些应用可能使用自定义协议进行通信。攻击者可以设计自定义协议的Payload,这些Payload在格式和内容上可能与WAF预定义的规则集不匹配,从而绕过WAF的检测。
33. 利用JSONP注入
JSONP(JSON with Padding)是一种跨域通信技术。攻击者可以尝试通过JSONP注入的方式,将攻击载荷包装在JSONP回调函数中,从而绕过WAF对跨域请求的检测。
34. 混淆请求方法
除了常见的GET和POST请求外,HTTP还定义了其他请求方法(如PUT、DELETE、PATCH等)。攻击者可以尝试使用不常见的请求方法,因为这些方法可能不在WAF的默认检测范围内。
35. 利用请求体分块传输编码(chunked transfer encoding)
在HTTP/1.1中,支持分块传输编码,允许将响应体分成多个块进行传输。攻击者可以尝试利用分块传输编码,将攻击载荷分散在多个块中,以绕过WAF的检测。
36. 混淆路径参数
在RESTful API中,路径参数通常用于指定资源。攻击者可以尝试在路径参数中插入混淆后的攻击载荷,因为这些参数可能不会被WAF仔细检查。
37. 利用HTTP/2特性
HTTP/2引入了多路复用、头部压缩等新特性。攻击者可以尝试利用这些特性来构造混淆的Payload,使得WAF难以准确解析和检测。
38. 混淆查询参数
查询参数通常用于传递附加信息给服务器。攻击者可以尝试在查询参数中插入混淆的攻击载荷,或者通过修改查询参数的格式和结构来绕过WAF的检测。
39. 利用WebSocket通信
WebSocket是一种在单个TCP连接上进行全双工通信的协议。攻击者可以尝试通过WebSocket发送混淆的攻击载荷,因为这些载荷可能不在WAF的默认检测范围内。
40. 混淆Content-Type
攻击者可以尝试修改请求的Content-Type头部,将其设置为WAF不常见或不支持的类型,从而绕过对特定类型Payload的检测。
最后
网络安全需要学习那些知识
网络安全零基础入门学习路线&规划
初级
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k
到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?
想要入坑黑客&网络安全的朋友,给大家准备了一份:282G全网最全的网络安全资料包免费领取!

7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.
零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习; 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime; ·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完; ·用Python编写漏洞的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并书写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选); ·了解Bootstrap的布局或者CSS。
8、超级黑客
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。

网络安全工程师企业级学习路线

视频配套资料&国内外网安书籍、文档&工具
当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

一些我自己买的、其他平台白嫖不到的视频教程:

要学习网安其实不难,难的是坚持和相信自己,我的经验是既然已经选定网安你就要相信它,相信它能成为你日后进阶的高效渠道,这样自己才会更有信念去学习,才能在碰到困难的时候坚持下去。
机会属于有准备的人,这是一个实力的时代。人和人之间的差距不在于智商,而在于如何利用业余时间,只要你想学习,什么时候开始都不晚,不要担心这担心那,你只需努力,剩下的交给时间!
这份完整版的学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

3125



被折叠的 条评论
为什么被折叠?



