Wargame/Web

[Webhacking.kr] 웹 해킹 old-23번 문제 풀이

1ullaby 2023. 9. 26. 17:38

old 23번 문제에 들어가면 아래와 같이 입력 폼이 있고, 주어진 스크립트를 주입하는 것이 미션이라고 써져있다.

 

<script>alert(1);</script>를 그대로 입력해 제출하니 no hack이라는 문구가 출력되었다.

여러 값들을 넣어봤는데, 

'2'나 '<'를 넣었을 때에는 입력한 그대로 출력되지만, 2개 이상의 문자를 넣으면 no hack이라고 출력되었다.

 

구글링을 해보니 eregi 우회를 통한 문제라는 것을 알게 되었다.

eregi은 NULL의 URL인코딩 값(%00)이 있으면 문자열 검사를 하지 못한다고 한다. (예를 들어 aa는 no hack이 뜨지만 a%00a는 걸리지 않음)

 

따라서 <script>alert(1);</script> 문자열 사이에 %00을 넣으면 될 것 같다.

url 뒷부분에 <s%00c%00r%00i%00p%00t>a%00l%00e%00r%00t(1);</s%00c%00r%00i%00p%00t>을 넣고 제출을 하니 문제가 해결되었다.