Skip to content

v3.3.2

Choose a tag to compare

@github-actions github-actions released this 23 Jan 08:50

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 友好字符串

解决的问题

  1. 编码兼容性:老系统/国内站点常使用 GBK、GB2312、Big5 等非 UTF-8 编码
  2. 匹配可靠性:直接在 bytes 上写正则或 contains 时,中文容易出现乱码或匹配失败
  3. 使用便利性:提供现成、可读、已解码的文本版本,简化中文/非 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