lwzSoviet/NoXss

GitHub: lwzSoviet/NoXss

一款高效的跨站脚本漏洞扫描器,支持反射型和 DOM 型 XSS 检测,适合大规模 URL 批量扫描。

Stars: 444 | Forks: 72

# NoXss ![found](https://img.shields.io/badge/found-200%2B%20xss-red) [![issues](https://img.shields.io/github/issues/lwzSoviet/NoXss)](https://github.com/lwzSoviet/NoXss/issues) [![release](https://img.shields.io/badge/release-v1.0--beta-blue)](https://github.com/lwzSoviet/NoXss/releases) [![license](https://img.shields.io/github/license/lwzSoviet/NoXss)](https://github.com/lwzSoviet/NoXss/blob/master/LICENSE) NoXss 是一个跨站脚本漏洞扫描器,支持反射型 XSS 和 DOM 型 XSS。它的速度非常快,适合测试数百万个 URL。它已在 Bug Bounty 项目中发现了一些 XSS 漏洞。 # 功能特性 + 速度快,适合测试数百万个 URL + 支持 DOM 型 XSS(使用 Chrome 或 Phantomjs)和反射型 XSS + 目前仅使用 8 个基于注入位置的 Payload(非模糊测试,更准确,更快速) + 异步请求(使用 gevent)和多进程 + 支持单个 URL、文件以及来自 Burpsuite 的流量 + 基于接口的流量过滤 + 支持特定 headers(referer、cookie、自定义 token 等) + 支持通过 ID 快速重新扫描 # 目录 ``` ├── 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 ``` # 截图 ![s1](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/c5f26bf68c233300.png) # 环境 Linux Python2.7 浏览器:Phantomjs 或 Chrome # 安装 ### Ubuntu + 1.`apt-get install flex bison phantomjs` + 2.`pip install -r requirements.txt` ### Centos + 1.`yum install flex bison phantomjs` + 2.`pip install -r requirements.txt` ### MacOS + 1.`brew install grep findutils flex phantomjs` + 2.`pip 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(如 ./url.txt)。 **--burp** 扫描来自 burpsuite proxy 的 *.xml(base64 编码,如 ./test.xml)。 **--process** 进程数量。 **--coroutine** 协程数量。 **--cookie** 使用 cookie。 **--filter** 过滤 URL。 **--browser** 使用浏览器(chrome、chrome-headless 或 phantomjs)进行扫描,擅长 DOM 型 XSS 但速度较慢。 **--save** 将结果保存到 ./result/id.json。 **--clear** 扫描后删除流量文件。 ### 如何扫描来自 Burpsuite 的数据 在 Proxy 中,“Save items” ==> “test.xml” ![s3](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/05613fbdc5233302.png) 然后您可以扫描 test.xml: `python start.py --burp=./test.xml` ### 如何重新扫描 首次扫描后,在 ./traffic/ 中会生成 taskid.traffic 和 taskid.reflect 文件: + taskid.traffic:请求的 Web 流量(已序列化)。 + taskid.reflect:反射结果(已序列化),包含反射参数、反射位置、类型等信息。 NoXss 将使用这些中间文件进行重新扫描: `python start.py --id taskid --save` # NoXss 的工作原理 ### 载荷 NoXss 仅使用 8 个 payload 进行扫描。这些 payload 基于参数的反射位置。更少的 payload 使其比模糊测试更快。 ### 异步与多进程 NoXss 使用协程实现高并发。 ### 支持 DOM 型 XSS 越来越多的页面使用 DOM 来渲染 HTML。NoXss 可以通过使用 Phantomjs(默认)或 chrome 来解析它。 ### 分析文件 有些 XSS 很难扫描。NoXss 会在 traffic/ 中保存一些文件用于分析,包括: + *.traffic(扫描过程中的流量文件) + *.reflect(参数反射结果) + *.redirect(30x 响应) + *.error(发生的错误,如超时、连接重置等) + *.multipart(当请求为 multipart-formed 时,不易扫描) # 示例 如 [截图](https://github.com/lwzSoviet/NoXss#screenshot) 所示,poc 为 `https://xxx/?proxyAccount=xssjs%22%3B&shareName=duhxams`,这意味着在参数 "proxyAccount" 中使用 payload `xssjs%22%3B`: ![poc](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/b021ab0061233303.png) 然后您可以使用 payload `xssjs";alert(1);//` 来闭合双引号。最终的利用方式为: `https://xxx.com/?proxyAccount=xssjs";alert(1);//&shareName=duhxams`
标签:Bug Bounty, BurpSuite插件, Chrome, CISA项目, DOM型XSS, Gevent, PhantomJS, Python, Web安全, XSS扫描, 加密, 反射型XSS, 可自定义解析器, 对称加密, 无后门, 漏洞扫描器, 网络安全, 自动化审计, 蓝队分析, 跨站脚本攻击, 隐私保护