WarGame/webhacking.kr

[webhacking.kr] prob 23

btr95 2018. 12. 13. 20:28

<script>alert(1);</script> 를 입력할 수 있다면 성공입니다.




숫자를 입력할 때는 그대로 뿌려주는데 문자를 2개 이상 입력하면 no hack이라면서 필터링 됩니다.

무슨 문자던 2개 이상 입력할 수 없다면 시도 자체가 불가능합니다.



하지만 생각해 볼 수 있는 내용은 단순히 문자열에 대해서 ereg, eregi 함수는 특정 시스템에서 우회가 가능합니다.

%00 즉 NULL을 이용해서 문자열의 끝을 알려주는 것입니다.


문자열을 입력할 때 맨 마지막에 NULL 값이 자동으로 입력되어 문자열의 끝을 알려주는 역할을 합니다.

그렇다면 맨 처음에 %00을 입력해 문자열의 끝이라고 알려주게 된다면 ereg, eregi와 같은 함수들을 우회할 수 있습니다.


하지만 그냥 %00<script>alert(1);</script>를 입력하게 되면 잘 적용되지 않습니다.

burp suite를 통해서 중간에 값을 잡아보면 %의 값이 넘어갈 때 %25로 넘어가는 것을 알 수 있습니다.

이 값을 다시 %00으로 조정하면 성공하게 됩니다.