XSS批量检测工具
2023-1-26 22:45:52 Author: 渗透安全团队(查看原文) 阅读量:17 收藏

0x01 简介

「NoXss是一个供web安全工程师批量检测xss隐患的脚本工具。其主要用于批量检测,比如甲方内部安全巡检,人工分析千万级的url资产是不现实的,NoXss使用多进程+协程的方式,支持高并发,可以出色的完成这一任务。NoXss从实用主义出发,小巧精致,不如其他扫描器拥有各式各样的高级功能(比如绕过waf、存储型xss等),深入挖掘xss这里首推XSStrike,但在批量检测方面,NoXss是一个不错的选择。」

项目地址: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

漏扫的时间消耗主要集中在网络IO,NoXss支持用户自己配置进程数与协程数,需要注意的是协程并发数需要结合网络情况而定,如果配置的过高,可能出现过多的网络阻塞,导致无法检出xss。

3.使用基于位置的payload

Fuzz技术通常带有很大的盲目性,对于批量检测并不适合。NoXss目前确定使用的payload一共只有8个,全部基于参数反射的位置,更少的payload意味着更少的测试用例、更快的扫描速度。

4.接口维度的去重

对于批量检测而言,去重是一项重要的工作。除了去除各种静态资源,NoXss还会以接口为维度对url进行去重,接口由域名、端口、路径、参数键值对等多个因素共同决定。在这个过程中,对于一些相似的属性,NoXss还会对其进行泛化。

5.与Burpsuite协同工作

NoXss支持将Burpsuite的流量导出进行扫描:

img

对于渗透测试人员来说,这是一个较为友好的功能。但请不要对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 总结

就漏洞本身而言,适合扫描的漏洞种类并不多,安全问题更多地还是需要人工去挖。但对于一些简单的漏洞,借助工具可以节省人力成本,如果每天有数千万的url需要你测试,交给NoXss定时任务或许是个不错的选择,最后由衷地感谢工具作者。

https://www.freebuf.com/sectool/223009.html


付费圈子

欢 迎 加 入 星 球 !

代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员

进成员内部群

星球的最近主题和星球内部工具一些展示

关 注 有 礼

关注下方公众号回复“666”可以领取一套精品渗透测试工具集和百度云视频链接。

 还在等什么?赶紧点击下方名片关注学习吧!


群聊 | 技术交流群-群除我佬

干货|史上最全一句话木马

干货 | CS绕过vultr特征检测修改算法

实战 | 用中国人写的红队服务器搞一次内网穿透练习

实战 | 渗透某培训平台经历

实战 | 一次曲折的钓鱼溯源反制

免责声明
由于传播、利用本公众号渗透安全团队所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号渗透安全团队及作者不为承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
好文分享收藏赞一下最美点在看哦

文章来源: http://mp.weixin.qq.com/s?__biz=MzkxNDAyNTY2NA==&mid=2247496927&idx=1&sn=fcaef34475a3b66340a8bcbb40af64e8&chksm=c1760970f601806629a3f60719a6a14bbfff839b24e9da6d12b5e5b9dd0d7b03b41c4e002d6b#rd
如有侵权请联系:admin#unsafe.sh