본문 바로가기
Wargame/webhacking.kr

webhacking.kr 9번

by morae23 2019. 1. 29.

Webhacking.kr

#9

[Blind SQL Injection]

 

 

9번 문제를 열면 아래와 같은 화면을 볼 수 있다.

우선 1, 2, 3을 눌러보았다.

 



 

 

아래와 같이 1을 누르면

?no=1을 수행하고

Apple이 나타난다.

 

 



 

 

2는

?no=2이며

Banana가 나타난다.

 

 



 

 

3은 마찬가지로

?no=3 이며

Secret이 나타난다.

 

 



 

 

1, 2, 3 이외의 숫자를 입력하면 어떻게 되는지 알기 위해

0을 입력해보면 아래와 같이 첫 화면에서 봤던 페이지가 나온다.

 

 



 

 

이 점을 이용하면 Blind SQL Injection이 가능할 것으로 보인다.

위의 페이지에서 힌트로 주어진 컬럼인 id와 no를 보면 no가 1일 때의 id는 Apple일 것으로 추정된다.

 

따라서 먼저 id의 길이가 5인지 확인해보면 아래와 같이 맞다는 것을 알 수 있다.

 

 



 

 

참고로 이 때 id의 length를 1이라고 하면 아래와 같이 다른 페이지가 나오는 것을 볼 수 있다.

 

 



 

 

더 확신을 가지기 위해 no가 2일 때도 보면 Banana라고 출력되는 것을 확인할 수 있다.

 

 



 

 

힌트에서 보면 length가 1이라고 되어 있으므로, no가 3일 때 length를 11로 주면 참인 것 또한 알 수 있다.

 

 



 

 

따라서 이제 실제 값들을 알아오기만 하면 된다.

아래와 같이 substr을 이용하여 한글자씩 알아올 수 있다.

 

 



 

 

실제 코드는 아래와 같다.

 

 



 

 

실행 결과를 통해 password 값을 얻을 수 있다.

 

 



 

 

이 값을 넣으면 clear할 수 있다.

 

 



 

 



'Wargame > webhacking.kr' 카테고리의 다른 글

webhacking.kr 15번  (0) 2019.01.29
webhacking.kr 13번  (0) 2019.01.29
webhacking.kr 3번  (0) 2019.01.29
webhacking.kr 2번  (0) 2019.01.29
webhacking.kr 8번  (0) 2019.01.29

댓글