본문 바로가기

WarGame/webhacking.kr

[webhacking.kr] Challenge 26 :: URL Encode


▼ Challenge 26은 다음과 같습니다. (바로 index.phps로 들어간 화면 입니다.)



GET방식으로 받은 id라는 변수에 eregi()를 이용하여 admin 문자열이 있을 경우 


"no!" 라는 글자를 띄우고 있습니다.


그 다음, 해당 id 변수를 URL Decoding한 것이 admin이 되면 문제가 풀리게 됩니다.



URL은 "%**"라는 문자를 16진수인 "0x**"문자로 인식합니다. 따라서 다음과 같이 Query를 전송하면

 "admin"이라는 문자로 인식하므로 "no!"라는 문구가 출력이 됩니다.




따라서, %2561%2564%256d%2569%256e 라고 Query를 전송하면, 

%25는 문자 "%"로 인식하고 최종적으로 URL은 "%61%64%6D%69%6E" 라는 문자로 인식을 하게 됩니다.


이 값은 $_GET[id]로 들어가서, urldecode() 됨으로 "admin"이라는 문자열만 남게 됩니다.


(%를 한번더 Encoding하면 %25)