Wargame(Web)/Webhacking.kr Writeup

Webhacking Writeup 61번 문제

P_Squirrel 2022. 8. 15. 22:07

Webhacking Writeup 61번 문제입니다.

아무것도 없으니 소스코드부터 보겠습니다.

코드를 해석하면

id를 입력하는데 addslashes함수로 싱글쿼터, 더블쿼터, 널, \ 를 치환해 한번 거름망 역할을 하고

필터링으로 괄호, select , from, 콤마, by , 점(.) 이 걸려있습니다.

또한 id의 길이는 15를 넘어서면 접근불가가 출력됩니다.

 

여기서 작성자가 느끼기에 가장 생소한건 select 다음으로 id가 있는점입니다.

평소에는 where 조건부분에 값을 입력하는 방식이였는데

어떻게 시작할지 몰라 지인에게 힌트를 조금 받았습니다.

 

select 구문을 좀더 공부해보라더군요

 

select에 대해 검색하다보니

값을 고정해서 출력하는 as 문을 찾을 수 있었습니다.

이 자료를 참고로 처음 세웟던 식은 

id=0x61646d696e%20as%20id 

였습니다.

 

admin을 문자열로 인식시킬 수 없다보니 16진수로 표현했고

as 사용을 위해 양측에 공백을 주었는데

글자 길이 15를 넘어 제한에 걸렸습니다.

 

그래서 as를 어떻게 사용해야하나 검색하다보니

as의 생략이 가능하더라구요

해서 이러한 SQL구문 구조를 활용해

 

아래와 같은 식을 세우고 제출해하니

 id=0x61646d696e+id

문제가 해결되었습니다!