[Blind SQL Injection]
40번 문제를 열면 아래와 같은 화면을 볼 수 있다.
이 때 no가 1일 때 guest인 것으로 추정된다.
따라서 no가 2일 때로 요청해볼 것이다.
원래 guest로 로그인할 경우
no=1&id=guest&pw=guest
가 된다.
이를 약간 변형하여
no=0||no=2&id=guest&pw=guest를 수행할 것이다.
참고로 no=1인 경우 guest에 해당하기 때문에(no=2를 시도하는 이유는 guest가 아닌 유저에 관한 정보를 얻기 위함이다.)
no=1||no=2가 아닌 0으로 한 것이다.
0이 실제로 다른 id에 할당된 값인지 먼저 확인하였다.
Failure가 출력되는 것을 보면 사용해도 될 것으로 보인다.
그리고 no=2인 경우 admin password를 입력하는 창이 보인다.
Admin의 no가 2인 것을 알 수 있다.
이 점을 이용하여 length()로 pw의 길이를 확인하고
substr()으로 실제 pw를 알아내는 코드를 작성하였다.
실제 수행 결과는 아래와 같다.
이렇게 획득한 pw를 이용하여 clear할 수 있다.
'Wargame > webhacking.kr' 카테고리의 다른 글
webhacking.kr 45번 (0) | 2019.02.01 |
---|---|
webhacking.kr 44번 (0) | 2019.02.01 |
webhacking.kr 33번 (0) | 2019.02.01 |
webhacking.kr 29번 (0) | 2019.01.29 |
webhacking.kr 15번 (0) | 2019.01.29 |
댓글