角度客户端模板注入扫描仪
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许可证获得许可的开源软件。
通过命令行克隆项目: