webhacking.kr 45번 문제다.

점수는 550point. 꽤 높은 점수다. 살짝 긴장 

들어가보니 인젝션 문제인 것 같다.

소스확인해보니 다행히 제공해준다.

id랑 pw가 몇가지 필터링당하고 있다. id에 admin만 불러오면 될 것 같다.
' id='admin'#으로 주면 될 것 같은데 해봤더니 안된다. 필터링부분에 따로 뭐가 없던걸 보면
php magic quote로 single quote를 필터링 하고 있는 것 같다. 그렇다면 우회를 해야하는데
처음보는 함수가 있다.

mb_convert_encoding()라는 함수가 입력값을 무슨처리를 하길래 찾아봤더니 3번째 인자로 들어온 인코딩 방식을 2번째 인자의 인코딩방식으로 전환시켜주는 것 같다.  이걸로 뭐하라는거지하고 있는데 연관검색어에 mb_convert_encoding 취약점이란게 보였다. 들어가보니 인코딩과정에서 멀티바이트 처리가되면서 백슬래시 앞에 %a1 ~ %fe 의 값이 들어오면 %a1\가 한개의 문자처럼 취급되는 취약점 이란다.

그렇다면 magic quote로 인해 \'방식으로 필터링되니까 %aa'  or id='admin'#방식으로 값을 주면 %aa\' or id='admin'#가 되어서 백슬레쉬가 문자가되어 우회가 될 것 같다.
id에서 admin이 필터링됬으니 char(97,100,109,105,110)로 바꾸고 특수문자 인코딩해서 넣어주면 될 것 같다.

시도해보니 다음과 같이 생각처럼 잘 동작한다.

성공!


'Wargame > webhacking.kr' 카테고리의 다른 글

webhacking.kr 47번  (0) 2018.01.17
webhacking.kr 46번  (0) 2018.01.17
webhacking.kr 44번  (0) 2018.01.15
webhacking.kr 43번  (0) 2018.01.15
webhacking.kr 42번  (0) 2018.01.15
블로그 이미지

JeonYoungSin

메모 기록용 공간

,