news 2026/4/18 3:27:54

除了SQL注入,WAF绕过技术如何应用于XSS、文件上传等其他漏洞类型?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
除了SQL注入,WAF绕过技术如何应用于XSS、文件上传等其他漏洞类型?

了解WAF(Web应用防火墙)如何被绕过,确实能帮助我们更立体地思考防御策略。下面这个表格汇总了XSS和文件上传漏洞的常见WAF绕过技术核心逻辑,帮你快速建立整体认知。

漏洞类型

WAF检测逻辑

核心绕过思路

代表性技术举例

XSS(跨站脚本)

关键字匹配(如script,onload)、正则表达式、上下文语义分析

变形、混淆、利用解析差异

编码混淆、标签与事件处理器替换、参数污染

文件上传

检查文件扩展名、MIME类型、文件内容、文件结构

欺骗检测逻辑、利用解析差异

文件头伪造、解析漏洞利用、竞争条件攻击

💡 XSS漏洞的WAF绕过详解

XSS绕过的核心在于让恶意载荷“看起来不像”攻击代码。

  1. 多种编码与混淆技术

    • Base64编码:将完整的JavaScript代码进行Base64编码,然后通过eval(atob('编码后的字符串'))等方式执行。这能有效隐藏原始载荷的关键字。

    • URL编码与Unicode编码:对载荷中的特殊字符或整个关键字进行编码,例如将<编码为%3C,或将alert编码为\u0061\u006c\u0065\u0072\u0074,以绕过简单的字符串匹配。

    • 注释与分割:在关键字中插入注释或将其分割成多个部分,利用JavaScript的语法灵活性绕过检测。例如,al/*任意内容*/ert(1)或通过字符串拼接a='al';b='ert';eval(a+b+'()')

  2. 替换攻击向量与标签

    WAF的规则库可能主要针对常见的标签(如<script>)。通过使用非标准或生僻的HTML标签和事件属性,可以大大提高绕过成功率。例如,使用<svg onload=alert(1)><body onload=alert(1)><details open ontoggle=alert(1)>等。

  3. 利用协议与解析差异

    • 参数污染:这是一种较新的高级技术。通过向同一个参数名提交多个值(例如/?q=1'&q=alert(1)&q='2),利用WAF与后端Web框架(如ASP.NET)在参数解析时的差异,使后端将多个值拼接成一个有效的XSS载荷,而WAF可能只检查了其中一个无害的值。

    • 伪协议:在支持JavaScript执行的环境中使用伪协议,如<a href="javascript:alert(1)">Click</a>

📤 文件上传漏洞的WAF绕过详解

文件上传绕过技术旨在让一个恶意文件在各个环节的检测中都被认为是合法的。

  1. 修改文件本身属性

    • 伪造文件头(Magic Number):在每个文件的开头,都有特定的几个字节来标识文件类型,如GIF文件的GIF89a。可以在WebShell代码前添加合法的图片文件头,尝试绕过基于文件头的检测。

    • 制作图片木马(Image Webshell):将WebShell代码嵌入到一个真实的图片文件中。使用命令行工具如copy /b image.jpg + shell.php webshell.jpg。这种方法可能绕过简单的文件内容扫描,但要成功执行代码,通常需要配合服务器解析漏洞。

  2. 操纵HTTP请求

    • 修改Content-Type:拦截上传请求,将Content-Typeapplication/octet-stream修改为白名单内的类型,如image/jpeg,以欺骗服务器的MIME类型检测。

    • 文件名混淆:使用多种技巧对文件名进行混淆,例如:大小写混合(pHp.InFo)、特殊字符(如空格、点号shell.php.,Windows系统会自动去除)、在Apache中利用多后缀解析(shell.php.jpg可能被解析为PHP文件)等。

  3. 利用服务器解析漏洞

    这是文件上传漏洞利用中威力巨大的技术,因为它能让一个看似无害的文件扩展名被当作脚本来执行。

    • IIS解析漏洞:例如,在IIS 6.0中,shell.asp;.jpg会被当作ASP文件执行;在名为shell.asp的目录下的所有文件都会被当作ASP解析。

    • Apache解析漏洞:如果配置不当(如AddHandler指令),文件shell.php.abc可能会因为.abc不被识别,而被从左向右解析为PHP文件。

    • Nginx解析漏洞:在特定配置下(cgi.fix_pathinfo=1),访问http://site.com/shell.jpg/notexist.php,Nginx可能会将shell.jpg作为PHP文件提交给解析器。

🛡️ 防御视角与最佳实践

理解攻击是为了更好的防御。从防御者角度看,构建有效的防护需要多层策略:

  • 输入验证与输出编码:坚持使用白名单机制进行输入验证,并对所有用户输入的输出进行严格的上下文相关编码(HTML编码、JavaScript编码等)。

  • 深度解码与规范化:WAF或后端代码应对输入进行深度解码(如多次URL解码、Base64解码),直到最原始的形式,再进行校验。

  • 最小权限原则:为Web服务器目录设置严格的权限,上传目录应设置为不可执行。

  • 定期更新与安全配置:及时更新Web服务器、中间件和应用程序框架,修复已知的解析漏洞,并进行安全配置审计。

  • 纵深防御:不要仅仅依赖WAF。结合安全编码、漏洞扫描、入侵检测系统(IDS)等构建纵深防御体系

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/5 12:32:34

DockDoor:macOS Dock增强与窗口预览的终极指南

DockDoor&#xff1a;macOS Dock增强与窗口预览的终极指南 【免费下载链接】DockDoor Window peeking for macOS 项目地址: https://gitcode.com/gh_mirrors/do/DockDoor 还在为macOS Dock功能单一而烦恼吗&#xff1f;DockDoor为你带来完美的解决方案&#xff01;这款强…

作者头像 李华
网站建设 2026/4/18 4:07:18

你真的会用VSCode审查网页吗?这5个隐藏功能让效率翻倍

第一章&#xff1a;你真的了解VSCode中的网页审查吗 在现代前端开发中&#xff0c;VSCode 已成为主流代码编辑器&#xff0c;但许多开发者并未意识到它本身并不直接提供类似浏览器的“网页审查”功能。真正的网页审查依赖于浏览器的开发者工具&#xff0c;而 VSCode 通过扩展和…

作者头像 李华
网站建设 2026/4/12 2:30:04

Beyond Compare 5密钥生成全攻略:3步告别试用期限制

Beyond Compare 5密钥生成全攻略&#xff1a;3步告别试用期限制 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 还在为Beyond Compare 5的30天试用期结束而烦恼&#xff1f;这个功能强大的文件对…

作者头像 李华
网站建设 2026/4/18 15:14:45

Z-Image-Edit与InstructPix2Pix对比:谁更强?

Z-Image-Edit 与 InstructPix2Pix 对比&#xff1a;谁更适合中文场景的图像编辑&#xff1f; 在如今内容创作高度依赖视觉表达的时代&#xff0c;快速、精准地修改一张图片正变得比以往任何时候都更重要。设计师不再满足于“从零生成”&#xff0c;而是希望“在已有基础上智能调…

作者头像 李华
网站建设 2026/4/13 22:32:18

5个关键步骤彻底解决Reloaded-II模组依赖下载循环问题

5个关键步骤彻底解决Reloaded-II模组依赖下载循环问题 【免费下载链接】Reloaded-II Next Generation Universal .NET Core Powered Mod Loader compatible with anything X86, X64. 项目地址: https://gitcode.com/gh_mirrors/re/Reloaded-II Reloaded-II作为强大的.NE…

作者头像 李华