Post133 nn

Descripcion


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