write-up(web)/webhacking.kr

[Webhacking.kr] Challenge old-27 write-up

ssongk 2022. 7. 27. 11:51

27번 문제 화면입니다.

27번 문제 소스코드입니다.

필터링되는 문자는 #,select,(,공백,limit,=,0x 입니다.

i 옵션으로 대소문자를 구분하지 않습니다.

쿼리를 입력하게 되면

no = ( query )의 형태로 괄호 안에 감싸져서 

괄호 안이 true가 되면 결과로 무조건 guest가 나오게 됩니다.

따라서 괄호를 상쇄시켜줄 필요가 있습니다.

쿼리는 다음과 같이 짤 수 있습니다.

no=(99) or id like 'admin' and no>1 and no<3 -- 

이 쿼리를 필터링을 우회하도록 변형시키면 아래 사진과 같습니다.

or 대신 ||

and 대신 &&(url 인코딩하여 %26%26)

'을 url 인코딩하여 %27

공백은 탭 문자를 url 인코딩하여 %09로 사용했습니다.

주석 문자인 -- 뒤에는 공백이 있어야 하므로 %09를 붙여줍니다.

해당 코드를 url로 전송하면

문제 끝!