Astra:针对REST API的自动化安全测试工具

发表于:2020-12-15 09:50

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Alpha_h4ck    来源:FreeBuf.COM

  REST即表述性状态传递(英文:Representational State Transfer,简称REST)是一套新兴的WEB通讯协议,访问方式和普通的HTTP类似,平台接口分GET和POST两种请求方式。
  针对REST API的渗透测试非常的复杂,因为不仅现有的API会不断更新和变化,而且还会不断增加新的API。对于广大安全研究人员、安全工程师和开发者们来说,Astra这款工具可以帮助他们完成大量工作,并在开发周期的早期过程中检测并修复安全漏洞。Astra可以自动检测并测试登录&注销功能(认证API),因此任何人都可以轻松将其集成到CICD管道中。除此之外,Astra还可以将API**作为输入参数来进行测试,并可在独立模式下测试大量API安全。
  功能介绍
  1、SQL注入
  2、跨站脚本XSS
  3、信息泄露
  4、不安全的身份认证和会话管理
  5、CSRF(包括Blind CSRF)
  6、频率限制
  7、CORS错误配置(包括CORS绕过技术
  8、JWT攻击
  9、CRLF检测
  10、XEE盲注
  工具要求
  Linux或macOS
  Python 2.7
  MongoDB
  工具安装
  $ git clone https://github.com/flipkart-incubator/Astra
  $ cd Astra
  $ sudo pip install -r requirements.txt
  Docker安装
  运行Mongo容器:
  $ docker pull mongo
  $ docker run --name astra-mongo -d mongo
  安装GUI Docker:
  $ git clone https://github.com/flipkart-incubator/Astra.git
  $ cd Astra
  $ docker build -t astra .
  $ docker run --rm -it --link astra-mongo:mongo -p 8094:8094 astra
  安装CLI Docker:
  $ git clone -b docker-cli https://github.com/flipkart-incubator/Astra.git
  $ cd Astra
  $ docker build -t astra-cli .
  $ docker run --rm -it --link astra-mongo:mongo astra-cli
  依赖组件
  - requests
  - logger
  - pymongo
  - ConfigParser
  - pyjwt
  - flask
  - sqlmap
  工具使用-命令行
  $ python astra.py --help
                        _
          /\       | |
         /  \   ___| |_ _ __ __ _
        / /\ \ / __| __| '__/ _` |
       / ____ \__ \ |_| | | (_| |
      /_/    \_\___/\__|_|  \__,_|
  usage: astra.py [-h] [-c {Postman,Swagger}] [-n COLLECTION_NAME] [-u URL]
                  [-headers HEADERS] [-method {GET,POST}] [-b BODY]
                  [-l LOGINURL] [-H LOGINHEADERS] [-d LOGINDATA]
  REST API Security testing Framework
  optional arguments:
    -h, --help            show this help message and exit
    -c {Postman,Swagger}, --collection_type {Postman,Swagger}
                          Type of API collection
    -n COLLECTION_NAME, --collection_name COLLECTION_NAME
                          Type of API collection
    -u URL, --url URL     URL of target API
    -headers HEADERS, --headers HEADERS
                          Custom headers.Example: {"token" : "123"}
    -method {GET,POST}, --method {GET,POST}
                          HTTP request method
    -b BODY, --body BODY  Request body of API
    -l LOGINURL, --loginurl LOGINURL
                          URL of login API
    -H LOGINHEADERS, --loginheaders LOGINHEADERS
                          Headers should be in a dictionary format. Example:
                          {"accesstoken" : "axzvbqdadf"}
    -d LOGINDATA, --logindata LOGINDATA
                          login data of API
  工具使用-Web接口
  直接在命令行中运行api.py,然后打开浏览器,通过访问http://127.0.0.1:8094的进入工具Web接口:
  $ cd API
  $ python api.py
  工具运行截图
  新建扫描任务:
  生成扫描报告:
  详细报告:

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号