Clipboard Image.png

工具简介【下载地址

snuck是一款自动化的漏洞扫描工具,它可以帮助你扫描Web应用中存在的XSS漏洞。snuck基于Selenium开发,并且支持Firefox、Chrome和IE浏览器。

snuck与传统的Web安全扫描工具有显著的区别,它会尝试利用特殊的注入向量来破坏网站的XSS过滤器,并通过这种方法提高漏洞的检出成功率。基本上说,snuck所采用的检测方法与iSTAR漏洞扫描工具的检测方法较为相似,但snuck针对的是特定的XSS过滤器。

下载和运行

snuck是一款采用Java编程语言开发的开源软件,该工具遵循Apache2.0许可证,你可以使用svn下载该工具。

Clipboard Image.png

svn checkout https://github.com/mauro-g/snuck snuck

下载完成之后,你可以使用build.xml文件来让Ant帮你编译源文件,并生成一个jar文件。

Clipboard Image.png


cd snuck

ant jar

运行完上面这两个命令之后,你就可以得到一个可执行的jar文件了。

除此之外,你也可以直接下载一个可执行的jar文件【传送门】。但是这个文件是2012年10月份发布的,所以它可能不支持新版的浏览器。

snuck不需要特定的依赖环境,你只需要安装一个JVM和Firefox浏览器即可。如果你想用Chrome/Chromium来进行测试的话,你需要下载一个特定的服务器【传送门】,这个服务器将作为Web浏览器和snuck扫描引擎之间的通信桥梁。对于IE浏览器也是一样,你也需要下载一个服务器【传送门】。当前版本的snuck可以在IE9上正常工作,但是在旧版本的IE浏览器中可能会出现问题,开发小组目前也正在努力解决这些问题。当然了,snuck采用Java编写,因此你可以在任何平台上使用它。

当你下载或生成了这个jar文件之后,你需要熟悉一下snuck的命令行选项,具体如下所示:


> java -jar snuck.jar

Usage: snuck [-start xmlconfigfile ] -config xmlconfigfile-report htmlreportfile [-d # ms_delay]

[-proxy IP:port] [-chrome chromedriver ] [-ie iedriver][-remotevectors URL] [-stop-first]

[-reflected targetURL -p parameter_toTest] [-no-multi]

 

Options :

 

  -start         path to login use case (XML file)

  -config        path to injection use case (XML file)

  -report        report file name (html extension isrequired)

  -d             delay (ms) between each injection

  -proxy         proxy server (IP: port)

  -chrome        perform a test with Google Chrome,instead of Firefox. It needs the path to the chromedriver

  -ie            perform a test with InternetExplorer, instead of Firefox.

                Disable the built in XSS filter in advance

  -remotevectors usean up-to-date online attack vectors source instead of the local one

  -stop-first    stop the test upon a successful vector isdetected

  -no-multi      deactivate multithreading for the reverseengineering process - a sequential approach will be adopted

  -reflected     perform a reflected XSS test (withoutwriting the XML config file)

  -p             HTTP GET parameter to inject(useful if -reflected is set)

  -help          show this help menu

XSS攻击向量

该工具自带了一套XSS攻击向量集,你可以直接在项目目录下的paylaods文件夹中找到这些测试向量。该目录包含下列四个文件:

1.    html_payloads:它存储了用于生成警告弹窗的HTML标签。你可以直接在向量集中使用占位符,比如说,测试用例为<scriptsrc=data:,%alert%></script>,该工具便会随机选择一个javascript alert来替代攻击向量中的%alert%。同理,类似<svgonload=%uri%>这样的向量也是类似的。

2.    js_alert:存储了大量的javascript代码来触发警告弹窗,例如alert(1)或eval(alert(2))等等。

3.    uri_payloads:存储了大量恶意URI,例如javascript:alert(1)。

4.    expression_alert_payloads:它存储了大量恶意payload。例如expression(URL=0),此时,snuck会强制生成一个以字符“0”结尾的重定向URL,并用它来尝试捕获漏洞。

Clipboard Image.png

当然了,测试人员也可以向工具添加自定义的测试向量,添加过程也很简单,只需要将测试向量写入即可。如果你不想使用本地测试向量集的话,你也可以使用一个在线攻击向量库(运行snuck时加上-remotevectors参数即可)。此时你需要提供一个指向远程攻击向量库的URL地址,并且其中要包含一个名为“payloads”的目录。比如说,向量库的地址为http://www.example.com/repository/,那么snuck会在http://www.example.com/repository/payloads/中寻找上述的四个payload文件。

* 参考来源:kitploit,FB小编Alpha_h4ck编译