Index
- Explorar contenido visible. Burp
- Consultar recursos públicos
- Descubrir contenido oculto
- Descubrir contenido por defecto. Nikto, Dirb
- Enumerar funciones con identificador
- Testeo de parámetros de debug
- Identificar funcionalidad
- Identificar tecnologías usadas. SSL
- Probar la transmisión de datos vía cliente
- Mapear la superficie de ataque. Nmap
3. Probar extensiones del navegador (APPLET) / Apps móviles.
- Probar la calidad de las contraseñas
- Probar la enumeración de usuarios
- Probar fuerza bruta
- Probar segundo factor de autenticación
- Probar funciones de recuperar cuenta
- Probar funciones "Recuerdame"
- Probar cuan predecibles son las credenciales autogeneradas
- Comprobar transmisiones de credenciales inseguras
- Probar hashes
- Probar fallos lógicos
- Entender el mecanismo
- Probar el significado de los tokens
- Probar la predicibilidad de los tokens
- Probar la transmisión de tokens insegura
- Probar revelación de tokens en logs
- Comprobar el mapeo de tokens a sesiones
- Probar el fin de sesión
- Probar la sesion fixation
- Probar CSRF
- Entender los requerimientos de control de acceso
- Probar con múltiples cuentas
- Probar el acceso limitado
- Pruebas para métodos de acceso inseguros
7. Tests de vulnerabilidades basadas en input
- Hacer fuzzing a todos los parámetros de peticiones
- Probar inyecciones SQL
- Probar inyecciones XSS y otros tipos
- Identificar XSS reflejados
- Probar inyección de cabecera HTTP
- Probar redirecciones abiertas
- Probar ataques almacenados
- Probar inyección de comandos
- Probar Path Traversal
- Probar inclusión de archivos
8. Tests pde Funcionalidad Específica
- Probar inyección SMTP
- Probar vulnerabilidades de software nativo
- Probar buffer overflow
- Probar vulnerabilidades de enteros
- Probar vulnerabilidades del formato de los strings
- Probar inyección SOAP
- Probar inyección LDAP
- Probar inyección XPath
- Probar inyección XXE
- Identificar la superficie de ataque clave
- Probar manejo de input incompleto
- Probar límites de confianza
10. Tests de Problemas de Hosting Compartido
- Probar credenciales por defecto
- Probar contenido por defecto
- Probar métodos HTTP peligrosos y cabeceras
- Probar funcionalidad proxy
- Probar configuración errónea del hosting virtual
- Probar bugs del software del servidor web
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/