angularjs csti scanner

其他类别 2025-07-31

角度客户端模板注入扫描仪

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许可证获得许可的开源软件。

下载源码

通过命令行克隆项目:

git clone https://github.com/tijme/angularjs-csti-scanner.git