Information Security

[DreamHack]-WHA ExploitTech: DBMS Fingerprinting 본문

INTERLUDE/Web Hacking

[DreamHack]-WHA ExploitTech: DBMS Fingerprinting

sohexz 2022. 3. 29. 18:46

 SQL Injection 취약점이 발생할 때 DBMS 정보를 수집하는 방법

 

DBMS Fingerprinting

SQL Injection 취약점을 발견하면?

-> DBMS의 종류와 버전을 제일 먼저 알아봐야 함

 

쿼리 실행 결과 출력

DBMS에서 지원하는 환경 변수의 값을 이용하는 방법

DBMS에서 제공하는 환경 변수와 함수를 사용해 버전을 확인하는 쿼리문

 

에러 메시지 출력

삽입한 쿼리를 애플리케이션에서 실행하면서 에러 메시지를 출력하는 경우 사용하는 DBMS를 알아낼 수 있음

잘못된 쿼리를 삽입했을 때 에러 메시지가 출력된 모습

 

 

MySQL

쿼리 실행 결과 출력

MySQL에서  version  환경 변수 또는  version  함수를 사용해 MySQL DBMS의 버전과 운영 체제 정보를 알아낸 모습

 

에러 메시지 출력

에러 메시지에 포함된 키워드로 DBMS 정보를 알아낸 모습

 

 

PostgreSQL

쿼리 실행 결과 출력

PostgreSQL에서  version  함수를 사용해 DBMS의 상세 정보와 운영 체제 정보를 알아낸 모습

 

에러 메시지 출력

에러 메시지에 포함된 키워드로 DBMS 정보를 알아낸 모습

 

MSSQL

쿼리 실행 결과 출력

MSSQL에서  version  환경 변수를 통해 DBMS의 버전과 운영 체제 정보를 알아낸 모습

 

에러 메시지 출력

에러 메시지에 포함된 키워드로 DBMS 정보를 알아낸 모습

 

SQLite

쿼리 실행 결과 출력

SQLite에서  sqlite_version  함수를 통해 DBMS의 버전을 알아낸 모습

에러 메시지 출력

에러 메시지에 포함된 키워드로 DBMS 정보를 알아낸 모습