Webhacking.kr 39번 문제 풀이 시작~


39번 문제 ( 100점 ) 짜리 클릭



그럼 어떤 값을 전송 할 수 있는 창을 볼 수 있다



소스 보기를 해보면 index.phps 를 참조 해 볼 수 있는 듯 하다



index.phps 페이지를 보면


아래와 같이 입력 값에 대해 replace와 substr이 되어지고 있다


그런데 쿼리문을 보면 '$_POST[id] 이런식으로 값이 전달되고 있다


싱글 쿼터가 $_POST[id] 앞에는 있는데 뒤에는 없다


그럼 id 값과 싱글 쿼터 (' )를 넣어서 문제를 클리어 할 수 있을거 같다


하지만 replace에서 싱글 쿼터는 필터링 되어진다


아래 화면에는 싱글 쿼터를 더블 쿼터로 변행하는거 처럼 보이지만



아래와 같이 Leafpad 에 붙여 넣기 해보면..


싱글 쿼터(' ) 를 싱글 쿼터 두 개로 ('') replace 하고 있다는 걸 알 수 있다


(폰트 때문에 구분이 잘 안되는거 같다)



그렇다면 replace와 substr이 15자리씩 끊어서 id 값을 잘라내고 있다는 사실을 이용하여


문제를 풀어보자


우선 id 라는 변수를 보면 아마 admin으로 만들어야 하지 않을까 싶다


그리고 15번 째에 싱글 쿼터(' )를 넣으면


replace에 의해 15번 째 자리에는 싱글 쿼터(' )가 들어가고 16번 째 자리에도 싱글 쿼터(' )가 들어가게 된다


substr에 의해 15자리씩 잘라내니 싱글 쿼터 두 개(' ' ) 중 16번 자리의 싱글 쿼터는 버려지게 되고


남은 싱글 쿼터 한 개(' )로 인해 쿼리문이 완성되게 될 것이다


한 번 시도 해보자


admin빈칸빈칸~~~15번 째 자리에 싱글 쿼터(' ) 입력 한 후


Submit Query를 클릭해보니



39번 문제가 클리어 된다



처음에는 replace로 싱글 쿼터를 더블 쿼터로 교체하는 걸로 봐서


삽질을 좀 했다;


드래그를 하다보니 싱글 쿼터 2개 라는 사실을 알게 되어서


쉽게 풀어냈다 ㅋㅋ


잘 구분 되는 폰트로 바꿔야 하나;;


암튼 100점 짜리 39번 문제도 클리어~