Network/Webhacking.kr

[webhacking.kr] Challenge(old)_26[100]

dcho 2019. 9. 24. 11:29
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는 받은 인코딩된 값을 자동으로 디코딩하게 된다는 군요. 

이렇게 하나 배워나가기!