본문 바로가기
Hacking/WebHacking.kr

Webhacking.kr : old-61 (200 pt)

by newbie22 2021. 1. 25.

 

 

문제에 접속하면 다음과 같은 화면이 나타납니다.

 

 

-> 문제 페이지에는 아무런 힌트도 없어서 바로 source를 확인하였습니다.

 

 

-> GET방식으로 id를 받습니다. 이때 id는 컬럼 이름입니다.

-> 쿼리의 결과의 id가 admin이면 해결됩니다.

 

문제를 보고 바로 as(별칭)을 사용하면 된다고 생각하였습니다. 그 이유는 말로 설명하기 어렵고 다음 쿼리의 실행 결과를 보면 이해하시기 바랍니다.

** mysql 쿼리의 특성(?) **

1) select 'admin' from test;

=> test 있는 데이터의 수만큼 컬럼의 이름이 admin이고 값이 admin이 출력됩니다.

< 실행 결과 >

2) select 'admin' admin from test;

=> test에 있는 데이터의 수만큼 컬럼의 이름이 admin이고 값이 admin이 출력됩니다.

< 실행결과 >

3) select 'admin' 'admin' from test;

=> test에 있는 데이터 수만큼 컬럼 이름이 admin이고 값이 adminadmin이 출력됩니다.

< 실행 결과 >

4) select 'admin' as 'admin' from test;

=> 해당 쿼리의 실행 결과는 select 'admin' admin from test; 쿼리와 동일합니다.

< 실행 결과 >


 

따라서 ?id='admin' id로 보내면 문제가 해결됩니다.

 

하지만 id 값은 싱글 쿼터('), 더블 쿼터(")가 필터링됩니다. 따라서 16진수로 바꾸고 보내면 됩니다.

 

0x61646d696e id  => 딱 15자리입니다.

 

 

끝~~

'Hacking > WebHacking.kr' 카테고리의 다른 글

Webhacking.kr : old-25 (150 pt)  (0) 2021.01.25
Webhacking.kr : old-19 (150 pt)  (0) 2021.01.25
Webhacking.kr : old-59 (200 pt)  (0) 2021.01.25
Webhacking.kr : old-42 (200 pt)  (0) 2021.01.24
Webhacking.kr : old-36 (200 pt)  (0) 2021.01.24