Index

0. Introducción

1. Mapeo de la Aplicación

  1. Explorar contenido visible. Burp
  2. Consultar recursos públicos
  3. Descubrir contenido oculto
  4. Descubrir contenido por defecto. Nikto, Dirb
  5. Enumerar funciones con identificador
  6. Testeo de parámetros de debug

2. Análisis de la Aplicación

  1. Identificar funcionalidad
  2. Identificar tecnologías usadas. SSL
  3. Probar la transmisión de datos vía cliente
  4. Mapear la superficie de ataque. Nmap

3. Probar extensiones del navegador (APPLET) / Apps móviles.

  1. Decompilar el cliente
  2. Debuggear
  3. Probar controles ActiveX
  4. Apps móviles. Android y Iphone.

4. Tests de Autenticación

  1. Probar la calidad de las contraseñas
  2. Probar la enumeración de usuarios
  3. Probar fuerza bruta
  4. Probar segundo factor de autenticación
  5. Probar funciones de recuperar cuenta
  6. Probar funciones "Recuerdame"
  7. Probar cuan predecibles son las credenciales autogeneradas
  8. Comprobar transmisiones de credenciales inseguras
  9. Probar hashes
  10. Probar fallos lógicos
    1. Probar condiciones Fail-Open
    2. Probar mecanismos multipaso

5. Tests de Manejo de Sesión

  1. Entender el mecanismo
  2. Probar el significado de los tokens
  3. Probar la predicibilidad de los tokens
  4. Probar la transmisión de tokens insegura
  5. Probar revelación de tokens en logs
  6. Comprobar el mapeo de tokens a sesiones
  7. Probar el fin de sesión
  8. Probar la sesion fixation
  9. Probar CSRF

6. Tests de Control de Acceso

  1. Entender los requerimientos de control de acceso
  2. Probar con múltiples cuentas
  3. Probar el acceso limitado
  4. Pruebas para métodos de acceso inseguros

7. Tests de vulnerabilidades basadas en input

  1. Hacer fuzzing a todos los parámetros de peticiones
  2. Probar inyecciones SQL
  3. Probar inyecciones XSS y otros tipos
    1. Identificar XSS reflejados
    2. Probar inyección de cabecera HTTP
    3. Probar redirecciones abiertas
    4. Probar ataques almacenados
  4. Probar inyección de comandos
  5. Probar Path Traversal
  6. Probar inclusión de archivos

8. Tests pde Funcionalidad Específica

  1. Probar inyección SMTP
  2. Probar vulnerabilidades de software nativo
    1. Probar buffer overflow
    2. Probar vulnerabilidades de enteros
    3. Probar vulnerabilidades del formato de los strings
  3. Probar inyección SOAP
  4. Probar inyección LDAP
  5. Probar inyección XPath
  6. Probar inyección XXE

9. Tests de Fallos Lógicos

  1. Identificar la superficie de ataque clave
  2. Probar manejo de input incompleto
  3. Probar límites de confianza

10. Tests de Problemas de Hosting Compartido

  1. Probar segregación en infraestructuras compartidas
  2. Probar segregación entre aplicaciones ASP-Hosted

11. Tests del Servidor Web

  1. Probar credenciales por defecto
  2. Probar contenido por defecto
  3. Probar métodos HTTP peligrosos y cabeceras
  4. Probar funcionalidad proxy
  5. Probar configuración errónea del hosting virtual
  6. Probar bugs del software del servidor web

12. Comprobaciones Miscelánea

  1. Comprobar ataques basados en DOM
  2. Comprobar vulnerabilidades locales de privacidad
  3. Probar politica de configuración Same-Origin

13. Fugas de Información

  1. Metadatos

Probar inyecciones SQL

Introduce comillas simples (') en todos los campos que encuentres.


Si obtienes un mensaje de error relacionado con la base de datos, existe una vulnerabilidad de SQL Injection.


Normalmente sólo en páginas muy antiguas y poco cuidadas se encuentran SQL Injection standard o basado en errores. Sin embargo, es frecuente encontrar dominios vulnerables a Blind SQL.
>>> Para descubrirlas, lo común es probar payloads del tipo:
' OR '1'='1' -- a
>>> A continuación, hay que mirar con Burp la petición, y volverla a repetir insertando algo del tipo:
' OR '1'='2' -- a
>>> Si las respuestas son distintas, entonces puedes ir haciendo preguntas a la BBDD tras el OR, y así obtener todos los valores de la BBDD.
>>> Añadiendo a esa petición algo del estilo: AND WAITFOR DELAY '0:0:10' encontramos un Blind SQL basado en el tiempo si la primera respuesta tarda 10 segundos más que la segunda.

Una vez que hayas detectado la inyección, utiliza una herramienta automatizada para explotarla.
>>> La mejor herramienta para ello es SQLMap. Es importante configurarla bien para sacar todo su potencial.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Notas:
Los payloads mostrados son ejemplos, y según el tipo de base de datos el lenguaje es distinto.

Puedes encontrar cheat sheets de cada base de datos en la siguiente URL:
http://pentestmonkey.net/cheat-sheet/sql-injection/mysql-sql-injection-cheat-sheet

El siguiente post te puede ayudar a comprender mejor los SQL Injection y SQLMap: http://hackinglethani.com/es/sql-injection-introduccion/