如何用 ActiveScan++ 检测盲代码注入?时间延迟与 Collaborator 双引擎原理解析
如何用 ActiveScan 检测盲代码注入时间延迟与 Collaborator 双引擎原理解析【免费下载链接】ActiveScanPlusPlusActiveScan Burp Suite Plugin项目地址: https://gitcode.com/gh_mirrors/ac/ActiveScanPlusPlus盲代码注入Blind Code Injection是让无数安全测试人员头疼的难题漏洞真实存在但服务器不会把执行结果回显到响应里普通扫描器只能干瞪眼。ActiveScan 是一款专为 Burp Suite 打造的主动扫描插件通过时间延迟检测与Burp Collaborator 回连检测两套引擎专门解决盲代码注入这类看不见的漏洞。本文将带你彻底搞懂这两套引擎的工作原理、适用场景与实战用法让你一次扫描就能精准揪出藏在暗处的代码执行漏洞。什么是盲代码注入为什么它会隐形先看一个最常见的场景应用接收了你输入的参数把它拼进了表达式语言、系统命令或模板引擎中执行但执行结果不会出现在响应页面里——没有报错信息、没有输出回显一切看起来正常。这种执行了但看不见的漏洞就是盲代码注入。典型例子包括表达式语言注入如 Java EL、OGNL、FreemarkerPerl / Ruby 的open()函数命令执行Shell 命令注入如 Shellshock 系列漏洞各种 Struts2、Solr 的 RCE 漏洞普通扫描器依赖响应内容变化来判断漏洞面对盲注入时基本失灵。而 ActiveScan 正是为此而生你不给我看结果我就用时间和外带回连两条路证明代码被执行了。ActiveScan 双引擎架构一张表看懂全貌 ⚙️检测引擎核心思路典型漏洞对应源码模块时间延迟引擎注入sleep命令比较响应耗时表达式注入、Shell 注入、Perl/Ruby open()CodeExec.javaCollaborator 回连引擎注入带专属域名的ping/外部实体观察 DNS/HTTP 交互Struts2 系列 RCE、Solr XXEStruts201712611Scan.java、SolrScan.java两个引擎都挂载在 Burp 的主动扫描流程中由 BurpExtender.java 统一注册。你只需要运行一次普通的主动扫描两套引擎就会自动接力工作。引擎一时间延迟检测用等待证明代码执行 ⏱️这是 ActiveScan 检测盲代码注入的主力引擎核心逻辑集中在 CodeExec.java 中思路非常朴素但极其有效。第一步根据文件后缀猜技术栈引擎会先分析目标 URL 的路径后缀自动匹配可能的技术栈.php/.php5→ PHP 系命令注入.jsp/.do/.action→ Java 表达式语言注入.rb→ Ruby 的open()利用.pl/.cgi→ Perl 的open()利用.asp/.aspx→ 通用 Shell 命令探测不同技术栈会加载不同的探测载荷避免无差别乱打。第二步测量基线响应时间正式攻击前插件会先发送一次睡眠 0 秒的基线请求测量目标服务器的正常响应耗时并据此动态设定延迟目标基线 1 秒 → 目标延迟设为 4 秒基线 9 秒 → 目标延迟设为 9 秒基线本身就很慢 9 秒→ 直接放弃避免误报第三步注入 sleep 载荷并对比耗时接着在插入点注入类似sleep 4、sleep 4、${...ProcessBuilder(sleep,4)...}这类载荷。如果响应耗时明显超过基线比如基线 200ms注入后变成 4 秒说明服务器的确执行了你的命令。第四步双重确认掐死误报ActiveScan 特别设计了确认机制先发一次 0 秒基线请求再发一次带延迟的请求只有两者的耗时差超过设定余量时才判定为代码注入并上报Code injection高危漏洞。这一设计有效规避了网络抖动、慢响应等造成的误报。 小结时间延迟引擎适合无需出网环境的检测场景即使目标服务器完全隔离外网也能通过计时证明漏洞存在。引擎二Burp Collaborator 回连让服务器主动汇报 时间延迟虽好但总有些场景睡眠被禁用、或应用对命令执行有白名单限制。这时就该Burp Collaborator登场了。Collaborator 是什么Collaborator 是 Burp Suite 内置的交互记录服务器插件会生成一个独一无二的专属子域名如xxxxx.burpcollaborator.net只要目标服务器向这个域名发起 DNS 解析、HTTP 请求等任何网络交互Burp 的 Collaborator 面板就会实时收到打卡记录。检测流程三步走以 Struts201712611Scan.java 为例看看经典的三步流程生成专属探测域名collab.generatePayload()生成随机子域名再拼接上ping xxx -c1之类的平台无关命令Windows 与 Linux 通用注入 OGNL 表达式把命令塞进 Struts2 的 OGNL 表达式载荷中发送攻击请求拉取交互记录collab.fetchAllCollaboratorInteractions()检查是否有来自目标服务器的 DNS 交互。有交互 命令被执行 RCE 实锤直接上报 Firm 级别的Struts2 CVE-2017-12611 RCE。同样的套路还用在SolrScan.java通过 XXE 外部实体触发 Solr 回连检测 CVE-2017-12629PerRequestScans.java检测 Struts2 CVE-2017-9805 时用ping命令验证检测 Rails 文件泄露CVE-2019-5418时还会比对响应中是否出现 Collaborator 地址来排除误报。 小结Collaborator 引擎证据链最硬——DNS/HTTP 交互记录就是铁证适合需要出具报告、或目标服务器可以访问外网的场景。两套引擎怎么选一张对比表帮你决策 维度时间延迟引擎Collaborator 回连引擎检测原理命令执行导致响应变慢命令执行触发外部网络请求目标网络要求无需出网需要目标能访问外网证据强度较弱依赖计时极强有交互记录误报率较低有双重确认极低适用目标内网、隔离环境公网应用、报告场景对应源码CodeExec.javaStruts201712611Scan.java、SolrScan.java实战建议两套引擎配合使用先让时间延迟引擎盲扫一遍再用 Collaborator 引擎复核可疑点一快一准攻防互补。实战三步5 分钟跑起来 ActiveScan 一键安装步骤通过git clone https://gitcode.com/gh_mirrors/ac/ActiveScanPlusPlus拉取源码用 Gradle 构建出active-scan-plus-plus-all.jar打开 Burp Suite Professional进入Extensions→Installed→Add选择构建好的 jar 包看到Loaded ActiveScan v2.0.x即安装成功。最快配置方法插件无需任何额外配置检测盲代码注入时也不需要手动指定插入点——它内置了 BasicAuthInsertionPointProvider.java 等插入点提供器会自动覆盖参数、Cookie、Header 等常见位置。触发检测动作只需要做一件事对目标运行一次普通的主动扫描。两套引擎会自动完成盲代码注入检测扫描结果会直接出现在 Burp 的 Scanner 面板中标记为Code injection或对应的 CVE 编号如Struts2 CVE-2017-12611 RCE。盲代码注入之外还能顺手检测什么️除了盲代码注入ActiveScan 的注册表里还有不少彩蛋Host 头攻击密码重置投毒、缓存投毒、DNS Rebinding 检测PerRequestScans.java敏感文件探测自动检查/.git/config、/server-status等泄露点PerHostScans.javaShellshock / Log4Shell内置 CVE-2014-6271、CVE-2021-44228 等知名漏洞检测Edge Side Includes检测 ESI 注入风险EdgeSideInclude.java输入变换嗅探发现7*7 → 49这类可疑变换提示存在代码求值SuspectTransform.java常见误报规避与排错技巧 目标响应本身很慢插件会自动放弃延迟检测此时可改用 Collaborator 引擎担心网络抖动插件内置基线对比 余量确认若仍怀疑可在 Burp 中查看请求标记Request Highlight核对注入位置Collaborator 无交互先确认 Burp 的 Collaborator 服务可用saveConfigAsJson中未配置为 none再检查目标网络是否能出网重复上报插件内置了 URL 去重机制同一 URL 的漏洞只报一次放心反复扫描。写在最后 盲代码注入检测的关键从来不是发多少载荷而是如何可靠地证明代码被执行了。ActiveScan 用时间延迟与 Collaborator 回连两套互补引擎给出了近乎完美的答案出网环境有铁证隔离环境有计时器。把它装进你的 Burp Suite下一次主动扫描盲注入漏洞将无处遁形。【免费下载链接】ActiveScanPlusPlusActiveScan Burp Suite Plugin项目地址: https://gitcode.com/gh_mirrors/ac/ActiveScanPlusPlus创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考