freeBuf
主站

分类

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

特色

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

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

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

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

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

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

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
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 Alpha_h4ck 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
my favor
Alpha_h4ck LV.10
好好学习,天天向上
  • 2359 文章数
  • 1021 关注者
Tetragon:一款基于eBPF的运行时环境安全监控工具
2025-01-21
DroneXtract:一款针对无人机的网络安全数字取证工具
2025-01-21
CNAPPgoat:一款针对云环境的安全实践靶场
2025-01-21
文章目录