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>을 넣고 제출을 하니 문제가 해결되었다.
'Wargame > Web' 카테고리의 다른 글
[Webhacking.kr] 웹 해킹 old-14번 문제 풀이 (0) | 2023.10.06 |
---|---|
[Webhacking.kr] 웹 해킹 old-54번 문제 풀이 (0) | 2023.09.26 |
[Webhacking.kr] 웹 해킹 old-20번 문제 풀이 (0) | 2023.09.26 |
[Webhacking.kr] 웹 해킹 old-16번 문제 풀이 (0) | 2023.09.19 |
[Webhacking.kr] 웹 해킹 old-10번 문제 풀이 (0) | 2023.09.19 |