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를 생략하는 것이 가능하니, 이를 생략하고 다시 한 번 입력해보자.
문제가 풀렸다!
'Wargame > Webhacking.kr' 카테고리의 다른 글
Webhacking.kr old 36번 문제 풀이 (0) | 2021.05.15 |
---|---|
Webhacking.kr old 12번 문제 풀이 (0) | 2021.05.15 |
Webhacking.kr old 47번 문제 풀이 (0) | 2021.05.08 |
Webhacking.kr old 59번 문제 풀이 (0) | 2021.05.07 |
Webhacking.kr old 23번 문제 풀이 (0) | 2021.05.03 |