안녕하세요 ㅎㅎ : )
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 한다면 문제가 해결 됩니다.
'Study > webhacking.kr' 카테고리의 다른 글
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 |
댓글