下载: https://github.com/s0md3v/XSStrike/releases
安装依赖: pip install tld, fuzzywuzzy, requests
官方文档: https://github.com/s0md3v/XSStrike/wiki/Usage#scan-a-single-url
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]
"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]" }
这里Payload给出了有效的负载, 我们可以手动复制到url中进行测试:
http://192.168.112.200/security/testxss.php?content=<d3V%09oNmOusEoVER%0a=%0a(confirm)()>v3dm0s
当鼠标移动到 v3dm0s 上面时触发事件.
Option: --data
python xsstrike.py -u "http://example.com/search.php" --data "content=test"
Option: --json
python xsstrike.py -u "http://example.com/search.php" --data '{"content":"test"}' --json
当没有明确的参数时, 不确定问号后面是content=test参数, 可以试试url路径探测.
Option: --path
python xsstrike.py -u "http://example.com/search/form/query" --path
Option: --crawl
python xsstrike.py -u "http://example.com/page.php" --crawl
Option: --seeds
python xsstrike.py --seeds urls.txt
Option: --params
python .\xsstrike.py -u "http://example.com/search.php" --params
模糊测试器(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
你可能想要在爬行时跳过DOM(文档对象模型)XSS(跨站脚本攻击)扫描,以节省时间
Option: --skip-dom
python xsstrike.py -u "http://example.com/search.php?q=query" --skip-dom
你需要在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'}
Option: --proxy | Default 0.0.0.0:8080
python xsstrike.py -u "http://example.com/search.php?q=query" --proxy
Proxy面板捕获请求开始创建扫描任务用浏览器向目标发送请求, 配置好的BurpSuit默认自动截取请求.
打开Proxy界面, 点击Forward, 放行所有请求.
请求完成后, 打开Target界面.
左侧显示自动爬取出的url路径目录.
在左侧目录树中找到需要扫描的路径, 比如testxss.php, 右键选择scan打开扫描配置窗口.
如果没有发现想要扫描的目标, 可以重新对上一级目录发送请求, 再查看目录树.
三种扫描:
crawl and audit 爬虫和审计
crawl 爬虫
audit selected items 审计
如果前面已经扫描出了目录树, 则选择第三种.
在下面的列表中选择需要测试的url, 右下角Consolidate items 可以设置需要过滤的文件类型, 比如 js,gif,jpg,png,css 等.
点击OK, 自动关闭扫描配置窗口.
回到了Target界面, 在右侧Issues可以看到扫描报告.
上方窗口显示扫描到的各种风险条目.
风险程度:
红色: 高风险
蓝色: 低风险
灰色: 具体信息
下方窗口显示具体的报告, 在上方窗口中选择任意一条风险信息后, 下方三个窗口显示具体的内容:
Advisory: 风险报告
Request: 请求信息
Response: 响应信息
在左侧目录树中找到需要扫描的路径, 比如testxss.php,
右键选择Actively scan this branch 主动扫描, 那么只要访问这个页面就会自动扫描并显示报告.
在左侧目录树中右键点击站点, 比如http://192.168.112.200,
右键选择Actively scan this branch 自动扫描全站并给出报告.
注意: 全站扫描可能会耗费大量cpu资源.
当自动扫描进行时, 比如全站扫描, 需要手动关闭扫描情况.
打开 Dashboard 面板, 点击最上面的 Task 后面的暂停按钮即可.
Dashboard面板直接创建扫描任务2.1. 打开Dashboard面板, 点击最上方的New scan按钮, 打开扫描配置窗口.
2.2. 在下方 URLs to Scan 列表中添加目标url.
2.3. 左侧Scan configuration 设置爬虫和审计的配置, 包括爬虫深度, 审计的类型和速度等等.
Application login 设置需要登录的用户名和密码.
2.4. 在Dashboard面板点击开始按钮开启任务, 左侧显示任务相关的Log, 右侧显示扫描报告.