Wargame/Webhacking.kr

Webhacking.kr old 61번 문제 풀이

esyeonge 2021. 5. 14. 10:02

view-source를 눌러서 코드를 보자.

 

$result['id'] 값이 admin이면 문제가 풀리게 된다.

id에 () select from , by . 등이 있거나 15글자보다 많으면 접근이 거절된다.

SQL문은 다음과 같다.

select {$_GET['id']} from chall61 order by id desc limit 1

 

이때 우리가 주목해야 하는 것은 where문에 $_GET['id'] 값이 들어가는 게 아니라 select 문에 들어가는 것이다.

출력된 문자열이 결국 답이 되기 때문에 우리는 admin을 화면에 출력해야 한다.

 

이때 사용해야 하는 것이 as(alias 별칭)이다.

as를 사용하면 admin as id 라고 쳤을 때 id=admin이라고 인식된다.

즉 id라는 칼럼에 admin이라는 값이 들어가면서 id의 값(=admin)을 출력하게 한다.

 

그럼 우리가 입력해야 하는 값은 ?id=admin as id이다.

이렇게 입력했을 경우 아무 출력도 없는 것을 볼 수 있다.

이에 admin을 hex값으로 바꿔주어 입력해보자.

 

15글자가 넘어서 Access Denied가 발생하였다.

as를 생략하는 것이 가능하니, 이를 생략하고 다시 한 번 입력해보자.

 

문제가 풀렸다!