推荐一款 xss 批量检测工具 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
pakecalvs
V2EX    程序员

推荐一款 xss 批量检测工具

  •  1
    &nsp;
  •   pakecalvs 2020 年 1 月 28 日 4772 次点击
    这是一个创建于 2185 天前的主题,其中的信息可能已经有所发展或是发生改变。

    0x01 简介

    NoXss 是一个供 web 安全人员批量检测 xss 隐患的脚本工具。其主要用于批量检测,比如扫描一些固定的 URL 资产,或者流量数据,会有不错的效果。测试到目前累计发现上百个 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 

    漏扫的时间消耗主要集中在网络 IO,NoXss 支持用户自己配置进程数与协程数,需要注意的是协程并发数需要结合网络情况而定,如果配置的过高,可能出现过多的网络阻塞,导致无法检出 xss。
    3.使用基于位置的 payload Fuzz 技术通常带有很大的盲目性,对于批量检测并不适合。NoXss 目前确定使用的 payload 一共只有 8 个,全部基于参数反射的位置,更少的 payload 意味着更少的测试用例、更快的扫描速度。
    4.接口维度的去重 对于批量检测而言,去重是一项重要的工作。除了去除各种静态资源,NoXss 还会以接口为维度对 url 进行去重,接口由域名、端口、路径、参数键值对等多个因素共同决定。在这个过程中,对于一些相似的属性,NoXss 还会对其进行泛化。
    5.与 Burpsuite 协同工作 NoXss 支持将 Burpsuite 的流量导出进行扫描: 对于渗透测试人员来说,这是一个较为友好的功能。但请不要对 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,扫描结束后保留了许多分析文件以供后续安全人员分析,整体还是挺不错的,希望对你有用最后由衷地感谢工具作者。

    2 条回复    2020-01-28 11:30:58 +08:00
    hehe12dyo
        1
    hehe12dyo  
       2020 年 1 月 28 日
    。。。
    DJI360
        2
    DJI360  
       2020 年 1 月 28 日
    为什么是 python2
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana   &nbs; 3231 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 12:41 PVG 20:41 LAX 04:41 JFK 07:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86