news 2026/1/19 9:12:51

除了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/1/10 0:18:03

终极网页长截图神器:一键保存完整页面内容

终极网页长截图神器&#xff1a;一键保存完整页面内容 【免费下载链接】full-page-screen-capture-chrome-extension One-click full page screen captures in Google Chrome 项目地址: https://gitcode.com/gh_mirrors/fu/full-page-screen-capture-chrome-extension 还…

作者头像 李华
网站建设 2026/1/10 15:02:47

终极PDF差异检测:用diff-pdf彻底告别文档核对烦恼

终极PDF差异检测&#xff1a;用diff-pdf彻底告别文档核对烦恼 【免费下载链接】diff-pdf A simple tool for visually comparing two PDF files 项目地址: https://gitcode.com/gh_mirrors/di/diff-pdf 在数字化办公时代&#xff0c;你是否曾为核对两个相似PDF文件而头疼…

作者头像 李华
网站建设 2026/1/15 15:54:55

百度网盘极速下载工具:告别限速,享受高速下载体验

百度网盘极速下载工具&#xff1a;告别限速&#xff0c;享受高速下载体验 【免费下载链接】pan-baidu-download 百度网盘下载脚本 项目地址: https://gitcode.com/gh_mirrors/pa/pan-baidu-download 还在为百度网盘的下载速度而苦恼吗&#xff1f;面对大文件的漫长等待&…

作者头像 李华
网站建设 2026/1/11 7:54:14

为什么顶尖开发者都在用VSCode智能体重组?真相令人震惊

第一章&#xff1a;为什么顶尖开发者都在用VSCode智能体重组&#xff1f;真相令人震惊在现代软件开发中&#xff0c;效率与智能化已成为顶级开发者的核心竞争力。VSCode 智能体重组技术正悄然改变编码方式&#xff0c;它不仅仅是代码补全或语法高亮的升级&#xff0c;而是通过深…

作者头像 李华
网站建设 2026/1/18 23:59:58

ToolBlock高级脚本之读取输出结果并拼接成字符串

ToolBlock高级脚本之读取输出结果并拼接成字符串脚本运行函数public override bool GroupRun(ref string message, ref CogToolResultConstants result){// 运行所有的工具foreach(ICogTool tool in mToolBlock.Tools)mToolBlock.RunTool(tool, ref message, ref result);var x…

作者头像 李华