一款适合甲方批量检测xss的工具

0x01简介
NoXss是一个供web安全人员批量检测xss隐患的脚本工具。其主要用于批量检测,比如扫描一些固定的URL资产,或者流量数据,会有不错的效果。测试到目前一个月发现将近300个xss,项目地址:https://github.com/lwzSoviet/NoXss

0x02工作原理
NoXss主要是通过“符号闭合”来检测xss隐患,使用基于“反射位置”的payload进行探测(目前一共8个),相比fuzz减少了很多盲目性。比如当请求参数的值出现在response的javascript代码段中,并且是以双引号的形式进行闭合,那么NoXss将使用xssjs”;这个payload;如果是以单引号的形式进行闭合,则会使用xssjs’;进行测试。更多的位置分类以及payload请参考https://github.com/lwzSoviet/NoXss/blob/master/README.md

0x03优势
1.支持DOM类型的xss
NoXss支持使用Chrome(推荐)和Phantomjs(默认)两种浏览器来对抗DOM类型的xss,同样支持多进程,即可以多个浏览器同时工作,但浏览器的资源占用通常是较高的,使用–browser选项意味着更慢的扫描速度、更高的CPU&内存占用。
2.多进程+协程支持高并发

#指定进程数
python start.py --url url --process 8
#指定协程并发数
python start.py --url url --coroutine/-c 300
图片[1]-一款适合甲方批量检测xss的工具-NGC660 安全实验室

对于渗透测试人员来说,这是一个较为友好的功能。但请不要对NoXss抱有太多的期望,它对较为复杂的xss(比如存储型)无能为力。
6.支持配置Cookie、Referer等请求头
在批量检测的过程中通常需要维持登录态,一些应用的后端还会校验Referer甚至其他的一些自定义的HTTP请求头部,NoXss支持用户对此进行配置:

python start.py --url url --cookie cookie

默认情况下,NoXss会根据当前扫描的url自动添加Referer头部。
7.辅助人工分析
NoXss会将扫描过程中的流量保存到traffic目录下,除此之外还有参数反射结果(.reflect)、跳转请求(.redirect)、网络等错误(.error)都将保存在traffic目录下。在扫描结束后,安全工作者可以很方便地利用这些“中间文件”进行分析。

0x04安装及使用
NoXss基于python2,主要用于批量检测,Centos安装如下:

yum install flex bison phantomjs
pip install -r requirements.txt

Ubuntu:

apt-get install flex bison phantomjs
pip install -r requirements.txt

其它平台安装参考: https://github.com/lwzSoviet/NoXss/tree/master#install
如果你希望使用Chrome作为检测使用的浏览器,还需手动安装Chrome、下载对应的驱动并设置环境变量,可以使用以下来检查浏览器是否安装正确:

python start.py --check

批量检测:

python start.py --file ./url.txt --save`

检测单个url:

python start.py --url url`

使用浏览器:

python start.py --url url --browser=chrome`

扫描Burpsuite流量:

python start.py --burp ./test.xml`

更多使用方式参考:https://github.com/lwzSoviet/NoXss/tree/master#usage

0x05总结
对于批量检测而言,NoXss测试用例较少,速度较快,支持DOM类型的xss,扫描结束后保留了许多分析文件以供后续安全人员分析,整体还是挺不错的,希望对你有用。最后由衷地感谢工具作者。

本文原作者:99008****@user36877178

本文转载于先知社区,如有侵权请联系删除

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享