freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Astra:针对REST API的自动化安全测试工具
2020-05-09 15:00:40

1.png 

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

工具运行截图

新建扫描任务:

2.png

生成扫描报告:

3.png4.png

详细报告:

5.png

项目地址

Astra:【GitHub传送门

参考文档:【传送门

* 参考来源:flipkart-incubator,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

# API # Astra
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者