표준 열거 기법이 실패하는 시나리오 식별
이 단계에서는 표준 sqlmap 열거 기법이 테이블 및 열 이름을 검색하는 데 실패할 수 있는 시나리오를 시뮬레이션합니다. 이는 WAF, 엄격한 필터링 또는 sqlmap이 데이터베이스 스키마를 직접 추론하는 것을 방지하는 사용자 지정 오류 처리로 인해 자주 발생합니다. 이 실습을 위해 실제로 취약한 애플리케이션을 설정하지는 않겠지만, 직접 열거가 불가능할 때 sqlmap이 어떻게 작동하는지 보여주기 위해 플레이스홀더 URL 을 사용할 것입니다.
먼저 테이블 및 열에 대한 표준 열거 명령을 시도해 보겠습니다. 대상으로는 더미 URL http://testphp.vulnweb.com/listproducts.php?cat=1을 사용하겠습니다. 이 URL 은 특정 상황에서 취약한 것으로 알려져 있지만, 이 연습에서는 직접 열거를 차단하도록 구성되었다고 가정합니다.
터미널을 열고 다음 sqlmap 명령을 실행합니다. 이 명령은 acuart 데이터베이스에 대한 테이블 및 열을 열거하려고 시도합니다.
sqlmap -u "http://testphp.vulnweb.com/listproducts.php?cat=1" --dbs --tables -D acuart --columns -T users --batch
sqlmap이 테이블이나 열을 찾는 데 어려움을 겪거나, 실제로 존재하더라도 테이블/열을 찾을 수 없다고 보고할 수 있습니다. 이는 직접 열거가 차단된 시나리오를 시뮬레이션합니다. --batch 플래그는 sqlmap에 질문에 대한 기본 답변을 사용하도록 지시하여 프로세스를 비대화형으로 만듭니다.
예시 출력 (다를 수 있지만, 발견된 테이블/열이 없다는 점에 유의하십시오):
_
___| |_____ ___ ___ ___ {1.7.10#stable}
|_ -| . | | . | . |
|___|_|_|_|_|_|___| . | --sqlmap.org
|_|
[!] 법적 고지: 사전 상호 동의 없이 대상 공격에 sqlmap을 사용하는 것은 불법입니다. 귀하는 자신의 행동에 대한 책임이 있습니다.
[!] sqlmap은 명시적이든 묵시적이든 어떠한 종류의 보증도 없이 '있는 그대로' 제공됩니다.
...
[INFO] 데이터베이스 'acuart'에 대한 테이블 가져오기
[INFO] 데이터베이스 'acuart'에서 테이블을 찾을 수 없습니다.
[INFO] 데이터베이스 'acuart'의 테이블 'users'에 대한 열 가져오기
[INFO] 테이블 'users'에서 열을 찾을 수 없습니다.
...
이 출력은 sqlmap이 테이블과 열을 직접 열거할 수 없었음을 나타냅니다. 이러한 경우 일반적인 이름에 대한 무차별 대입이 실행 가능한 대안이 됩니다.