Post133 nn1

Prueba de seguridad en API Rest


Profile
Omar Jacobo Muñoz Veliz

Descripción

 

Las pruebas de penetración de la API REST son complejas debido a los continuos cambios en las API existentes y las API recién agregadas. Astra puede ser utilizado por ingenieros o desarrolladores de seguridad como parte integral de su proceso, para que puedan detectar y parchear vulnerabilidades temprano durante el ciclo de desarrollo. Astra puede detectar y probar automáticamente el inicio de sesión y el cierre de sesión (API de autenticación), por lo que es fácil para cualquier persona integrar esto en la canalización de CICD. Astra puede tomar la colección API como entrada, por lo que también se puede usar para probar APIS en modo independiente.

 

Ataques a realizar: 

 

  • SQL injection
  • Cross site scripting
  • Information Leakage
  • Broken Authentication and session management
  • CSRF (including Blind CSRF)
  • Rate limit
  • CORS misconfiguration (including CORS bypass techniques)
  • JWT attack

 

Requerimientos

 

  • Linux or MacOS
  • Python 2.7
  • mongoDB

Instalación

 

$ git clone https://github.com/flipkart-incubator/Astra

$ cd Astra

$ sudo pip install -r requirements.txt

 

Dependencias

-request

-logger

-pymongo

-ConfigParser

-pyjwt

-flask

-sqlmap

 

Uso

 

$ 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

 

Ejecutar via web

 

$ cd API
$ python api.py

 


 


 

 

 

 



Artículos que te pueden interesar


Ante la pandemia global de COVID 19 la ciberseguridad ha sido un gran desafío para cientos de usuarios y empresas previo al impacto de la transf... Estevenson Luis Solano


Continuar Leyendo

El uso de contenedores ha facilitado la implementación de diversas herramientas con variados stacks de aplicaciones en un solo host, pero la pre... José Moreno


Continuar Leyendo

WEBSNORT es un servicio web que permite subir archivos pcap para que sean analizados por los IDS/IPS configurados y devuelve como resultado el d... Sheyla Leacock


Continuar Leyendo