漏洞扫描技巧之Web漏洞扫描器研究
字数 1597 2025-08-18 11:38:56
Web漏洞扫描器高级技巧研究
0x00 前言
本文深入探讨Web漏洞扫描器中的高级技术实现,包括编码/解码处理、PoC分类、IAST实现和限速机制等关键技术点。
0x01 编码/解码与协议处理
多协议支持架构
在扫描器设计中,处理多种数据格式和协议是一个关键挑战。传统方法存在以下问题:
- 每增加一个新协议需要修改所有检测模块
- 协议处理逻辑分散在各个检测模块中
- 难以应对嵌套编码场景
改进方案:分层架构
# utils.py
def decode(data):
if is_amf(data):
data = decode_amf(data)
if is_X(data):
data = decode_X(data)
# 递归decode处理嵌套编码
for i in data:
data[i] = decode(data[i])
return data
关键设计原则
- 协议解析与封装独立:将编码/解码逻辑从检测模块中剥离
- 递归处理:支持嵌套编码场景(如multipart包含json,json字符串中包含另一个json)
- 网络操作抽象:统一请求发送接口,支持多种协议
实现优势
- 新增协议只需在协议层添加支持,无需修改检测模块
- 检测模块只需关注payload生成和注入
- 支持任意复杂的协议和编码组合
0x02 PoC分类策略
AWVS的PoC分类体系
| 类型 | 描述 | 检测目标示例 |
|---|---|---|
| PerServer | Web Server级别漏洞 | 中间件、Web框架漏洞 |
| PerFile | 文件级别漏洞 | 文件备份、Bash RCE |
| PerFolder | 目录级别漏洞 | 敏感信息泄漏、路径SQL注入 |
| PerScheme | 参数级别漏洞 | SQL注入、XSS |
| PostCrawl | 爬虫结束后检测 | 使用爬虫资源进行检测 |
| PostScan | 扫描结束后检测 | 二阶注入、存储XSS |
工作流程
- 爬虫收集资产
- 资产格式化处理
- 根据资产类型分发到对应PoC检测模块
- 执行PostCrawl和PostScan检测
设计优势
- 分类明确,覆盖完整检测生命周期
- 避免为减少重复请求而记录中间状态
- 各检测阶段分工明确
0x03 IAST实现技巧
AcuSensor的PHP实现
实现原理:
- 通过
auto_prepend_file加载acu_phpaspect.php - 获取实际请求文件内容
- 检查缓存,有则直接执行缓存
- 使用
token_get_all解析PHP代码 - 替换关键函数为自定义包装函数
- 缓存并执行修改后的代码
示例转换:
原始代码:
$sql = "select * from user where user_id=".$_GET["id"];
mysqli_prepare($link, $sql);
转换后:
$sql = "select * from user where user_id=".$_GET[_AAS91("hello.php", 4, "\$_GET", "id")];
_AAS86("hello.php",6,"mysqli_prepare",Array($link, $sql));
技术优势:
- 纯PHP实现,无需扩展
- 配置简单,兼容性强
- 可扩展为完整RASP解决方案
0x04 限速机制
代理方案
实现方式:
- 所有扫描流量通过代理服务器
- 由代理统一控制请求频率
优缺点:
- 优点:兼容现有扫描器,无需修改检测逻辑
- 缺点:影响time-based检测,无法设置超时
双重队列方案
工作流程:
- Worker从主队列获取目标任务
- 从目标专属队列获取具体检测任务
- 根据QPS设置控制执行频率(sleep或调整并发)
技术优势:
- 保持稳定连接
- 不影响扫描功能
- 精确控制请求速率
0x05 漏洞检测演进
发展阶段与策略
-
初期积累:
- 研究AWVS、SQLMap等实现
- 学习动态页面检测、404识别等技巧
- 理解设计背后的历史背景和原因
-
精准度提升:
- 收集和分析误报/漏报案例
- 结合漏洞平台和渗透测试结果优化
- 开源项目需建立用户反馈循环
-
高级阶段:
- 多源资产收集(HIDS、流量分析、日志)
- 结合RASP等运行时防护技术
- 分析access log、数据库log等辅助数据
非技术要素
- 完善的漏洞描述和解决方案文档
- 可量化的指标数据汇报
- 清晰的权责划分机制
总结
本文详细剖析了Web漏洞扫描器中的关键技术实现,包括:
- 通过分层架构实现多协议支持
- 借鉴AWVS的PoC分类体系
- 创新的PHP IAST实现方案
- 两种实用的限速机制
- 漏洞检测能力演进路径
这些技术点共同构成了现代Web漏洞扫描器的核心能力,为安全工程师设计和实现扫描器提供了重要参考。