角度客户端模板注入扫描仪
ACSTIS可帮助您扫描某些Web应用程序中的AngularJS客户端模板注入(有时称为CSTI,Sandbox Escape或Sandbox旁路)。它支持扫描单个请求,但也抓住整个Web应用程序的AngularJS CSTI漏洞。
目录
-
安装
-
用法
-
问题
-
执照
安装
首先确保您使用Python 2.7/3.4或更高。然后运行下面的命令以安装ACSTIS。
$ pip install https://gi*thub.co**m/tijme/angularjs–csti–scanner/archive/master.zip
用法
扫描单个URL
acstis -d \”https://*f*inn*wea.com/some/page/?category=23\”
扫描单个URL(并验证警报弹出)
acstis -vp -d \”https://*f*inn*wea.com/some/page/?category=23\”
扫描整个域
acstis -c -d \”https://fin*nw*e*a.com/\”
扫描整个域(如果发现漏洞,请停止)
acstis -c -siv -d \”https://fin*nw*e*a.com/\”
信任给定证书
acstis -d \”https://*f*inn*wea.com/some/page/?category=23\” -tc \”/Users/name/Desktop/cert.pem\”
所有命令行选项
用法:acstis [-h] -d域[-c] [-vp] [ - av angular_version] [-vrl vulenerable_requests_log] [-siv] [-pmm] [-sos] [-soh] [-soh] [-soh] [-sot] [-sot] [-md max_depth] [-md max_depth]
必需的参数:
-D域, - 域域扫描域(例如Finnwea.com)
可选参数:
-h, - 赫尔普显示此帮助消息和退出
-c, - 爬行者使用爬行者扫描所有域
-VP, - Verify-Payload使用JavaScript引擎验证是否执行有效载荷(否则可能会发生误报)
-av angular_version, - angular-version angular_version如果自动检查不起作用,请手动通过角版(例如1.4.2)
-vrl vulnerable_requests_log, - vulnerable-requests-log viles_requests_log log log log log log to此文件(eg/var/logs/acstis.log或urls.log)
-siv, - stop-if-if-if-vulnerable(crawler选项)如果发现漏洞,请停止扫描
-pmm, - 遵守匹配(crawler选项)仅扫描与开始点相同协议的页面(例如,仅HTTPS)
- sos, - 扫描的subdomains(crawler选项)也扫描了具有与起点相比的另一个子域的页面
-soh,-scan-other-hostnames(crawler选项)还扫描了具有与开始点相比的另一个主机名的页面
-sot,-scan -other-tlds(crawler选项)也扫描了一个比开始点的tld
-md max_depth,-max-depth max_depth(crawler选项)最大搜索深度(默认是无限的)
-mt max_threads,-max-threads max_threads(crawler option)最大使用的同时线程量(默认为20)
-IIC, - ignore-Invalid-Certificates(crawler选项)忽略无效的SSL证书
-tc trusted_certificates, - 信任认证trusted_certificates(crawler option)信任此ca_bundle文件(.pem)或带有证书的目录
身份验证,饼干,标题,代理和范围选项
这些选项未在ACSTIS的命令行接口中实现。请下载Extended.py脚本,并使用以下一个或多个代码段进行扩展。您可以将这些代码段粘贴到Extended.py脚本的Main()方法中。
请注意:如果您使用extended.py文件,请确保调用python extended.py [your arguments]而不是acstis [your arguments] 。
基本身份验证
options . identity . auth = HTTPBasicAuth ( \"username\" , \"password\" )
消化身份验证
options . identity . auth = HTTPDigestAuth ( \"username\" , \"password\" )
曲奇饼
options . identity . cookies . set ( name = \'tasty_cookie\' , value = \'yum\' , domain = \'finnwea.com\' , path = \'/cookies\' )options . identity . cookies . set ( name = \'gross_cookie\' , value = \'blech\' , domain = \'finnwea.com\' , path = \'/elsewhere\' )
标题
options . identity . headers . update ({\"User-Agent\" : \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36\"})
代理
options . identity . proxies = {# No authentication# \'http\': \'http://host:port\',# \'https\': \'http://host:port\',# Basic authentication# \'http\': \'http://user:pass@host:port\',# \'https\': \'https://user:pass@host:port\',# SOCKS\'http\' : \'socks5://user:pass@host:port\' ,\'https\' : \'socks5://user:pass@host:port\'}
范围选项
options . scope . protocol_must_match = Falseoptions . scope . subdomain_must_match = Trueoptions . scope . hostname_must_match = Trueoptions . scope . tld_must_match = Trueoptions . scope . max_depth = Noneoptions . scope . request_methods = [Request . METHOD_GET ,Request . METHOD_POST ,Request . METHOD_PUT ,Request . METHOD_DELETE ,Request . METHOD_OPTIONS ,Request . METHOD_HEAD]
测试
Travis CI在每次推动下都可以并且将自动完成测试。如果要手动运行单元测试,请使用以下命令。
$ python -m unittest discover
问题
问题或新功能可以通过GitHub问题跟踪器报告。在提交新的问题之前,请确保其他任何人都没有报告您的问题或功能。
执照
ACSTIS是根据MIT许可证获得许可的开源软件。
