본문 바로가기

WEB/Lord Of SQL injection

[Lord Of SQL injection] orc → wolfman

idadmin이라고 처음부터 되어있다. 문제는 pw인데 우선 addslashes가 무슨 함수인지 알아보자

http://www.w3schools.com/php/func_string_addslashes.asp 여기에서 예제를 돌려보면 이 함수가 하는 일을 쉽게 파악할 수 있는데 ‘, “, \, NULL로 문자열을 구분하는 DB 시스템에서 하나의 문자열 안에 따옴표가 들어가면 오류가 발생할 수 있기 때문에 이를 막아주기 위해 백슬래쉬를 추가시킨다.(http://zzaps.tistory.com/45)

여기서 Hello admin을 띄워주는 부분은 addslashes 전이다.

이렇게 pw값이 TRUE인 상황에서는 Hello admin이 뜨고

pw값이 FALSE인 상황에서는 Hello admin이 뜨지 않는다.

이처럼 참과 거짓의 각각 다른 결과를 통해 공격하는 것을 Blind SQL injection이라고 한다. 

우선 pw의 길이를 알아보자

pw의 길이는 5이상 10이하라는 것을 알 수 있다.

5부터 넣다보면 8에서 Hello admin이 나온다.

그리고 이제 substr을 이용해 pw가 무엇인지 알아내는데 생각한 쿼리문이 제대로 잘 돌아가는지 확인하기 위해 앞의 한글자만 노가다로 알아내자

다행이 0부터 넣은 지 얼마 안돼서 2에서 Hello admin이 출력되었다.

파이썬으로 짜서 효율적으로 구하자