본문 바로가기

wargame/webhacking.kr

webhacking.kr 26번 문제


안녕하세요 ㅎㅎ : )


webhacking.kr 26번 문제 풀이 하겠습니다.


일단 php 코드를 확인하면 

GET파라미터 id 를 입력 받아 admin과 비교합니다. (eregi 함수 사용)

그 후 urldecode를 한 id 값이 admin과 일치 하면 solve를 줍니다.


저는 처음에 eregi 함수 취약점 인줄 알았는데 ㅠ

아니였습니다. (%00admin)


힌트는 urldecode에 있습니다. 

저는 처음에 admin을 urlencode 해서 보내면 첫 번째 if 문을 우회 할 수 있지 않을까 했습니다.


url encode는 원래 특수문자 등과 같은 문자들만 hex로 바꾸어 주는 건데요

text to hex 와 거의 동일합니다.

그러므로 admin을 url encode 한 값은 아래와 같습니다.

%61%64%6d%69%6e


id=%61%64%6d%69%6e

를 입력했는데 .. no 가 출력이 되더라고요

이유는 브라우저에서 자동적으로 url decode를 하는 것 같습니다.

즉 url 에서는 admin 과 %61%64%6d%69%6e는 같은 "admin" 문자열과 동일하게 본다는 것입니다.


그러면 즉 %61%64%6d%69%6e이 문자열을 한번 더 url encode 한다면 문제가 해결 됩니다.




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

webhacking.kr 26번 문제  (0) 2017.06.13
webhacking.kr 25번 문제  (0) 2017.06.13
webhacking.kr 23번 문제  (0) 2017.06.13
webhacking.kr 21번 문제  (0) 2017.06.13
webhacking.kr 18번 문제  (0) 2017.06.13
webhacking.kr 17번 문제 풀이  (0) 2017.06.13