• XSS攻击(4), XSS扫描工具


    XSSTrike 与 Burp Suite 扫描 XSS 漏洞

    一, XSSTrike

    1. 安装
    下载: https://github.com/s0md3v/XSStrike/releases
    安装依赖: pip install tld, fuzzywuzzy, requests
    
    • 1
    • 2

    官方文档: https://github.com/s0md3v/XSStrike/wiki/Usage#scan-a-single-url

    2. 使用
    测试get请求

    Option: -u or --url
    python .\xsstrike.py -u “http://192.168.112.200/security/testxss.php?content=test”

    [~] Checking for DOM vulnerabilities
    [+] WAF Status: Offline
    [!] Testing parameter: content
    [!] Reflections found: 1
    [~] Analysing reflections
    [~] Generating payloads
    [!] Payloads generated: 3072
    ------------------------------------------------------------
    [+] Payload: <d3V%09oNmOusEoVER%0a=%0a(confirm)()>v3dm0s
    [!] Efficiency: 100
    [!] Confidence: 10
    [?] Would you like to continue scanning? [y/N]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    "Checking for DOM vulnerabilities": "正在检查DOM漏洞",    
    "WAF Status: Offline": "WAF状态: 离线",    
    "Testing parameter: content": "测试参数: content",    
    "Reflections found: 1": "找到的反射: 1",    
    "Analysing reflections": "正在分析反射",    
    "Generating payloads": "正在生成有效负载",    
    "Payloads generated: 3072": "生成的有效负载数量: 3072",    
    "------------------------------------------------------------"  
    "[+] Payload: v3dm0s": 
    "[+] 有效负载: v3dm0s",    
    "[!] Efficiency: 100": "[!] 效率: 100",    
    "[!] Confidence: 10": "[!] 置信度: 10",    
    "[?] Would you like to continue scanning? [y/N]": "[?] 您是否想继续扫描? [y/N]"  }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    这里Payload给出了有效的负载, 我们可以手动复制到url中进行测试:

    http://192.168.112.200/security/testxss.php?content=<d3V%09oNmOusEoVER%0a=%0a(confirm)()>v3dm0s
    
    • 1

    当鼠标移动到 v3dm0s 上面时触发事件.

    测试post请求
    Option: --data
    python xsstrike.py -u "http://example.com/search.php" --data "content=test"
    
    • 1
    • 2
    发送json
    Option: --json
    python xsstrike.py -u "http://example.com/search.php" --data '{"content":"test"}' --json
    
    • 1
    • 2
    探测url路径参数

    当没有明确的参数时, 不确定问号后面是content=test参数, 可以试试url路径探测.

    Option: --path
    python xsstrike.py -u "http://example.com/search/form/query" --path
    
    • 1
    • 2
    爬虫扫描漏洞 (不仅限于XSS漏洞)
    Option: --crawl
    python xsstrike.py -u "http://example.com/page.php" --crawl
    
    • 1
    • 2
    批量测试文件中的url
    Option: --seeds
    python xsstrike.py --seeds urls.txt
    
    • 1
    • 2
    探测url的隐藏参数
    Option: --params           
    python .\xsstrike.py -u "http://example.com/search.php" --params
    
    • 1
    • 2
    模糊测试器

    模糊测试器(fuzzer)被设计用来测试过滤器和Web应用防火墙。它之所以运行缓慢,是因为它会发送随机延迟的请求,延迟时间可以长达30秒。
    为了减少延迟,可以通过使用-d选项将延迟设置为1秒。

    Option: --fuzzer
    python xsstrike.py -u "http://example.com/search.php?q=query" --fuzzer
    python xsstrike.py -u "http://example.com/search.php?q=query" --fuzzer -d 1
    
    • 1
    • 2
    • 3
    跳过DOM扫描

    你可能想要在爬行时跳过DOM(文档对象模型)XSS(跨站脚本攻击)扫描,以节省时间

    Option: --skip-dom
    python xsstrike.py -u "http://example.com/search.php?q=query" --skip-dom
    
    • 1
    • 2
    使用代理

    你需要在core/config.py中设置你的代理(proxies)然后你就可以在任何时候使用–proxy开关来使用它们。
    core/config.py

    More information on adding proxies: http://docs.python-requests.org/en/master/user/advanced/#proxies
    proxies = {'http': 'http://0.0.0.0:8080', 'https': 'http://0.0.0.0:8080'}
    
    • 1
    • 2
    Option: --proxy | Default 0.0.0.0:8080
    python xsstrike.py -u "http://example.com/search.php?q=query" --proxy
    
    • 1
    • 2

    二, Burp Suite

    1. 从Proxy面板捕获请求开始创建扫描任务
    1.1 捕获请求

    用浏览器向目标发送请求, 配置好的BurpSuit默认自动截取请求.
    打开Proxy界面, 点击Forward, 放行所有请求.

    1.2 普通扫描

    请求完成后, 打开Target界面.
    左侧显示自动爬取出的url路径目录.
    在左侧目录树中找到需要扫描的路径, 比如testxss.php, 右键选择scan打开扫描配置窗口.
    如果没有发现想要扫描的目标, 可以重新对上一级目录发送请求, 再查看目录树.

    三种扫描:

    crawl and audit         爬虫和审计
    crawl                   爬虫
    audit selected items    审计
    
    • 1
    • 2
    • 3

    如果前面已经扫描出了目录树, 则选择第三种.
    在下面的列表中选择需要测试的url, 右下角Consolidate items 可以设置需要过滤的文件类型, 比如 js,gif,jpg,png,css 等.
    点击OK, 自动关闭扫描配置窗口.
    回到了Target界面, 在右侧Issues可以看到扫描报告.

    1.3 扫描报告

    上方窗口显示扫描到的各种风险条目.

    风险程度:

    红色: 高风险
    蓝色: 低风险
    灰色: 具体信息
    
    • 1
    • 2
    • 3

    下方窗口显示具体的报告, 在上方窗口中选择任意一条风险信息后, 下方三个窗口显示具体的内容:

     Advisory:	风险报告  
     Request:	请求信息
     Response: 	响应信息
    
    • 1
    • 2
    • 3
    1.4 自动扫描

    在左侧目录树中找到需要扫描的路径, 比如testxss.php,
    右键选择Actively scan this branch 主动扫描, 那么只要访问这个页面就会自动扫描并显示报告.

    1.5 全站扫描

    在左侧目录树中右键点击站点, 比如http://192.168.112.200,
    右键选择Actively scan this branch 自动扫描全站并给出报告.
    注意: 全站扫描可能会耗费大量cpu资源.

    1.6 停止扫描

    当自动扫描进行时, 比如全站扫描, 需要手动关闭扫描情况.
    打开 Dashboard 面板, 点击最上面的 Task 后面的暂停按钮即可.

    2. 从Dashboard面板直接创建扫描任务

    2.1. 打开Dashboard面板, 点击最上方的New scan按钮, 打开扫描配置窗口.
    2.2. 在下方 URLs to Scan 列表中添加目标url.
    2.3. 左侧Scan configuration 设置爬虫和审计的配置, 包括爬虫深度, 审计的类型和速度等等.
    Application login 设置需要登录的用户名和密码.
    2.4. 在Dashboard面板点击开始按钮开启任务, 左侧显示任务相关的Log, 右侧显示扫描报告.

  • 相关阅读:
    部署LVS-DR+Keepalived高可用群集构建
    AWS DynamoDB AWS CLI操作与编程
    C++ Lanternfish | Advent of Code Year 2021 Day 6
    内部类杂记
    宝塔面板 PHP fileinfo Class ‘finfo‘ not found 的解决办法
    .NET Core C#系列之XiaoFeng.Threading.JobScheduler作业调度
    bash: cmake: command not found...+++++++lsb_release: command not found
    VLAN的配置实例
    基于单片机的双交通灯控制设计
    对接艾睿电子Arrow EDI项目案例
  • 原文地址:https://blog.csdn.net/bua200720411091/article/details/133953373