v3.3.2
Afrog 核心功能更新说明
🔧 【新增】-test 参数(测试模式)
-
功能说明:新增的
-test参数用于开启测试模式,目前主要功能是暂时忽略 requires 行为,允许在尚未完成指纹识别的前提下,直接对指定 PoC 进行验证。 -
设计理念:
- 使用
-test而非-ignore-requires等名称,体现了作者的明确设计意图 - 正式扫描/生产环境:
requires是必须且强烈建议启用的机制,确保先通过指纹筛选再执行漏洞 PoC,以提高效率和准确性 - 测试场景:跳过
requires只应出现在 PoC 编写、调试、验证等“测试场景”中 - 命名意义:
-test明确表示这是一个“仅限测试场景使用”的模式,不鼓励长期忽略requires
- 使用
📝 【新增】response_text 核心功能
核心用意
将原始的 response.body(bytes 类型)智能解码成可直接阅读的字符串(text)。
解码策略
- 优先级:优先尊重响应头中的 charset(如 GBK、UTF-8)
- 容错机制:解码失败时回退到合理默认编码
- 简化理解:
response_text≈ 将response.body转换为人类可读的 UTF-8 友好字符串
解决的问题
- 编码兼容性:老系统/国内站点常使用 GBK、GB2312、Big5 等非 UTF-8 编码
- 匹配可靠性:直接在 bytes 上写正则或 contains 时,中文容易出现乱码或匹配失败
- 使用便利性:提供现成、可读、已解码的文本版本,简化中文/非 ASCII 文本的提取和匹配
使用场景指南
✅ 优先使用 response_text(强烈推荐场景)
- 需要匹配/提取人类可读内容,尤其是中文(标题、正文、关键词)
- 使用
submatch/rmatches/contains/icontains等“文本语义”函数 - 不确定响应编码,但希望结果是正常可读字符串
✅ 继续使用 response.body(默认推荐场景)
- 处理二进制内容、协议数据、文件指纹
- 需要字节级精确匹配(如 magic bytes、特定偏移)
- 追求最高性能(bytes 操作更快)
- 响应本身不是可解码文本(此时
response_text可能为空或全是替换符)
选型口诀
默认用
response.body(原始、稳定、快)
只有涉及中文/可读文本匹配时,才切换到response_text
🎯 【新增】rmatches 函数详解
功能说明
rmatches(text):专门对字符串(text)进行正则匹配,返回True/False- 底层引擎:使用
regexp2(Re2 风格,支持更多 Perl 特性),语义更接近常见正则工具
三函数对比表
| 函数 | 输入类型 | 适合场景 | 典型用法示例 | 备注 |
|---|---|---|---|---|
bmatches |
bytes | 字节级、二进制、编码无关 | bmatches(response.body, b"\x00\x01") |
最原始、最稳定 |
matches |
string | 通用字符串匹配 | "admin".matches(response_text) |
基础字符串匹配 |
rmatches |
string (text) | 中文、正文、已解码文本 | "致远.*协同".rmatches(response_text) |
推荐用于中文/标题/正文匹配 |
推荐写法(中文场景)
expression: response.status == 200 && "致远.*协同办公".rmatches(response_text)
expression: response_text.icontains("<title>致远协同")📊 总结建议
黄金搭档组合
response_text:解决中文乱码问题,让文本匹配更可靠(中文指纹的救星)rmatches:为文本匹配提供清晰、直观的正则函数,与response_text完美搭配
选型策略
- 默认情况:
body+bmatches→ 更原始、更稳定 - 中文/正文场景:
response_text+rmatches→ 更友好、更准确
按照以上指南,在编写规则时就不再需要纠结“到底用哪个匹配函数”和“中文为什么匹配不到”的问题了。
🛡️ 其他功能增强
服务指纹识别支持
支持常见服务指纹识别与弱口令爆破:
- MySQL、MSSQL、Dameng(达梦)、FTP、IMap、Memcache、Mongodb、Oracle、Pop3
- Postgresql、RDP、Redis、SMB、SMTP、SSH、Telnet、VNC、Winrm
性能说明:
- 弱口令爆破行为为串行执行
- 扫描时间平均 3-5分钟 不等(视目标服务和网络状况而定)
漏洞检测增强
新增漏洞支持:
- CVE-2026-24061:Telnet 远程认证绕过漏洞
afrog -t x.x.x.x:23 -s telnet