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 Path Traversal

Si un parámetro parece contener un nombre de archivo o una parte del mismo, o de un directorio, trata de modificar ese parámetro y añade ../ sin que cambie la ruta
>>> Por ejemplo, si el parametro es file=foo/file1.txt, pon en su lugar file=foo/bar/../file1.txt
>>> So la respuesta es la misma, entonces es vulnerable.

Si el test anterior funcionó, entonces quiza puedas ir yendo hacia atrás con ../ y meterte en los archivos que te interesan.
>>> A lo mejor tiene un filtro por tipo de archivo, de forma que si le indicas a ese parámetro algo distinto a un txt (por ejemplo), no lo muestre.
>>> Para evitar esto prueba a meter un bit null o de nueva línea para ver si no detecta el tipo de archivo:
> ../../../../../boot.ini%00.jpg
> ../../../../../etc/passwd%0a.jpg
>>> Si el filtro comprueba que la ruta empiece por un determinado directorio, prueba algo estilo /images/../../../../../../../etc/passwd


Archivos interesantes si tienes acceso a lectura de ficheros:
>>> Archivos de contraseñas del SO y de la app.
>>> Archivos de configuración del servidor y de la app.
>>> Archivos que puedan contener credenciales de la base de datos.
>>> Archivos usados por la app, como archivos MySQL de la base de datos o archivos XML.
>>> Código fuente de ejecutables del servidor.
>>> Logs de aplicación que pueden tener nombres de usuario o tokens de sesión.


Cosas interesantes si tienes acceso a escritura de ficheros:
>>> Crear scripts en carpetas de inicio de los usuarios.
>>> Modificar archivos como in.ftpd para ejecutar comandos arbitrarios cuando el usuario se conecte
>>> Escribir scripts en un directorio web con permisos de ejecución y llamarlo desde tu navegador.


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Notas:

El programa dotdotpwn permite realizar pruebas automáticas de path traversal