프록시를 통해 sqlmap 이 보낸 페이로드 분석하기
이 단계에서는 개별 요청을 더 자세히 살펴보고 sqlmap이 SQL 인젝션 취약점을 탐지하고 악용하는 데 사용하는 특정 페이로드를 이해합니다.
Burp Suite 의 HTTP history 탭에서 목록의 아무 요청이나 클릭합니다. 요청을 선택하면 목록 아래에 Request와 Response라는 두 개의 새 패널이 나타납니다.
Request 패널을 클릭하여 sqlmap이 보낸 원시 HTTP 요청을 확인합니다. URL 의 id 매개변수에 주의를 기울이세요. 다양한 페이로드가 테스트되는 것을 볼 수 있습니다.
예를 들어, 다음과 같은 불리언 기반 블라인드 페이로드를 찾을 수 있습니다.
GET /index.php?id=1%20AND%208003=8003 HTTP/1.1
Host: 127.0.0.1
...
여기서 sqlmap은 참 조건 (AND 8003=8003) 이 주입되었을 때 애플리케이션이 다르게 응답하는지 테스트하고 있습니다. %20은 공백의 URL 인코딩 표현입니다.
시간 기반 블라인드 페이로드를 찾을 수도 있습니다.
GET /index.php?id=1%20AND%20(SELECT%202079%20FROM%20(SELECT(SLEEP(5)))IImL) HTTP/1.1
Host: 127.0.0.1
...
이 페이로드를 사용하여 sqlmap은 SLEEP(5) 명령을 주입합니다. 서버 응답이 5 초 더 오래 걸리면 sqlmap은 인젝션이 성공했으며 데이터베이스가 취약하다는 것을 알게 됩니다.
이러한 요청을 분석함으로써 자동화된 스캐너가 작동하는 방식에 대해 훨씬 더 깊이 이해할 수 있습니다. 취약점을 확인하기 위해 사용하는 논리를 볼 수 있으며, 이는 터미널에서 최종 결과만 보는 것보다 훨씬 교육적입니다.