NoXss 是一款跨站脚本漏洞扫描器,支持反射型 XSS 和基于 DOM 的 XSS。它速度极快,适合测试数百万个 URL。已在 Bug Bounty 计划中发现了一些 XSS 漏洞。
├── engine.py
├── logo
├── cookie.py
├── url.txt
├── cookie
│ └── test.com_cookie
├── traffic
│ ├── 49226b2cbc77b71b.traffic #traffic file(pickled)
│ └── 49226b2cbc77b71b.reflect #reflected file(pickled)
├── config.py
├── start.py
├── url.txt.filtered #filtered urls
├── util.py
├── README.md
├── banner.py
├── requirements.txt
├── result
│ └── 49226b2cbc77b71b-2019_10_29_11_24_44.json #result
├── model.py
└── test.py

Linux
Python2.7
浏览器:Phantomjs 或 Chrome
apt-get install flex bison phantomjspip install -r requirements.txtyum install flex bison phantomjspip install -r requirements.txtbrew install grep findutils flex phantomjspip install -r requirements.txt如果你想使用 "--browser=chrome" 进行扫描,必须手动安装 Chrome。可以使用 "--check" 测试安装情况。
python start.py --check
python start.py --url url --save
python start.py --url url --cookie cookie --browser chrome --save
python start.py --url url --cookie cookie --browser chrome-headless --save
python start.py --file ./url.txt --save
python start.py --burp ./test.xml --save
python start.py --file file --filter
--url 从 URL 扫描。
--id 通过任务 ID 从 *.traffic 文件重新扫描。
--file 从文本文件(如 ./url.txt)扫描 URL。
--burp 扫描来自 Burpsuite 代理的 *.xml(base64 编码,如 ./test.xml)。
--process 进程数。
--coroutine 协程数。
--cookie 使用 cookie。
--filter 过滤 URL。
--browser 使用浏览器(chrome、chrome-headless 或 phantomjs)扫描,适合 DOM 型 XSS 但速度较慢。
--save 将结果保存到 ./result/id.json。
--clear 扫描后删除流量文件。
在代理中,“Save items” ==> “test.xml”

然后你可以扫描 test.xml:
python start.py --burp=./test.xml
首次扫描后,./traffic/ 目录下会生成 taskid.traffic 和 taskid.reflect:
python start.py --id taskid --saveNoXss 仅使用 8 个 Payload 进行扫描。这些 Payload 基于参数的反射位置。更少的 Payload 使其比模糊测试更快。
NoXss 通过使用协程实现高并发。
越来越多的页面使用 DOM 渲染 HTML。NoXss 可以使用 Phantomjs(默认)或 Chrome 解析它。
某些 XSS 难以扫描。NoXss 会将一些文件保存在 traffic/ 目录中用于分析,包括:
如截图所示,poc 为 https://xxx/?proxyAccount=xssjs%22%3B&shareName=duhxams,这意味着在参数 "proxyAccount" 中使用了 payload xssjs%22%3B:

然后你可以使用 payload xssjs";alert(1);// 来闭合双引号。最终的利用为:
https://xxx.com/?proxyAccount=xssjs";alert(1);//&shareName=duhxams