뉴비에욤
Webhacking.kr 26번 본문
GET 파라미터로 전송되는 id 파라미터 값이 "admin" 이면 필터링에 걸려 "no"가 출력된다.
그런데 클리어 조건이 id 값이 "admin" 이여야 한다.
힌트는 바로 urldecode 부분에 있다.
URL에서는 한글이나 특수문자 등을 처리하기 위해 입력한 문자를 인코딩 하게 된다.
=> ' '(공백) = %20
=> # = %23
그러나 알파벳의 경우에는 평문이 그대로 들어가기 때문에 이럴 때는 HTML 인코딩을 사용해야 한다.
알파벳 'a'를 HTML 인코딩 하면 %61이 된다.
위 사진에서 보이는 문자열 모두 "admin"을 의미한다.
그러나, "%61dmi"n 을 입력할 시에는 필터링에 걸리면서 "no"가 출력되는데 그 이유는 인코딩된
문자열을 입력하는 순간 브라우저에서 자체적으로 한번 디코딩이 진행된다.
따라서 "%61dmin"을 한번 더 인코딩 한 결과값(%2561dmin)을 입력해야 한다.
입력 문자열 |
브라우저 디코딩 |
필터링 |
페이지 urldecode |
admin |
admin |
걸림(오류 발생) |
X |
%61dmin |
admin |
걸림(오류 발생) |
X |
%2561dmin |
%61dmin |
안걸림 |
admin |
http://webhacking.kr/challenge/web/web-11/index.php?id=admin
'Webhacking.kr' 카테고리의 다른 글
Webhacking.kr 28번 (0) | 2015.08.16 |
---|---|
Webhacking.kr 27번 (0) | 2015.08.16 |
Webhacking.kr 25번 (0) | 2015.08.16 |
Webhacking.kr 24번 (0) | 2015.08.16 |
Webhacking.kr 23번 (0) | 2015.08.15 |
Comments