Write Up/Webhacking. kr
Old 26
jxx_yxjx
2022. 5. 12. 12:22

소스코드부터 확인하자

파란색으로 써진 부분을 보자
< preg_match() 함수로 admin 문자열과 $_GET['id']와 비교해서 같으면 no! 를 출력한다.
후에, $_GET['id']를 urldecode() 함수로 디코딩 해주고, 이것이 "admin"과 일치하면 문제를 해결할 수 있다.>
-참고

url에 ?id=admin을 바로 작성했으나 실패
아까 본 소스코드에서 디코딩과 관련된 부분이 나왔다.
그렇다면 인코딩해서 값을 넣으면 디코딩해서 진행될 것이라고 생각했다.
admin을 인코딩한 값은 %61%64%6D%69%6E 이다.

그러나 브라우저에서 자동으로 디코딩 되어 ?id=admin으로 적었을 때와 같아지고 no!가 다시 뜨게된다.
한번 더 인코딩해서 디코딩 되어도 상관없도록 해주자.
인코딩된 값은 %2561%2564%256D%2569%256E 이다.
주소창에 ?id=%2561%2564%256D%2569%256E 를 입력해주면

이번에는 하단에 자동 디코딩 된 것이 뜨지 않는다.

해결 완료
