SMALL
이번문제는
필터링 되는 부분 : "admin" 문자열
get 받는 파라미터 : id
해결해야 되는 부분 : urlencode를 통해 "admin" 문자열을 우회해 해결하기
아스키 코드표를 참고해서 16진수를 이용해 "admin"문자열을 urlencoding을 해주었다.
admin : %61%64%6d%69%6e
하지만 admin문자열 그대로 해석하기에 필터링 되었다.
preg_match 은 i를 안썻다면 대소문자 구분을 안한다.
ADMIN : %41%44%4d%49%4e
AdMin : %41%64%4d%69%6e
대문자도 해보았지만 결과는 최종적으로는 admin으로 인식하지 못했다. 하지만 if문은 지나쳤다.
기나긴 삽질 끝에 urlencoding 을 두번 해보았다.
admin : %61%64%6d%69%6e -> %2561%2564%256d%2569%256e
클리어!
아마 이렇게 urldecode 가 한번되어 들어가지만 한번 인코딩된 값이 "admin"으로 인식되는 것 같다.
정확한건 : 웹 서버와 브라우저 사이에서 데이터 교환시 브라우저는 폼에서 입력받은 데이터를 자동으로 인코딩한 값을 PHP로 보내고 PHP는 받은 인코딩된 값을 자동으로 디코딩하게 된다는 군요.
이렇게 하나 배워나가기!
'Network > Webhacking.kr' 카테고리의 다른 글
[webhacking.kr] Challenge(old)_39[100] (0) | 2019.10.14 |
---|---|
[webhacking.kr] Challenge(old)_38[100] (0) | 2019.10.14 |
[webhacking.kr] Challenge(old)_24[100] (0) | 2019.09.24 |
[webhacking.kr] Challenge(old)_18[100] (0) | 2019.09.24 |
[webhacking.kr] Challenge(old)_17[100] (0) | 2019.09.24 |