ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • <Webhacking.kr> old-23
    Wargame/Webhacking.kr 2021. 12. 6. 14:03

    old-23

    script로 alert(1)을 주입하라고 한다.

     

    페이지 소스 코드를 살펴보면

    <html>
    <head>
    <title>Challenge 23</title>
    <style type="text/css">
    body { background:black; color:white; font-size:10pt; }
    input { background:silver; color:black; font-size:9pt; }
    </style>
    </head>
    <body>
    <form method=get action=index.php>
    <table border=0 cellpadding=10>
    <tr><td><input name=code></td><td><input type=submit></td></tr>
    </table>
    </form><br><br>
    <!--
    이 부분은 원래 주석 부분이 아니지만 주석을 하지않을 경우, 사이트를 켤때마다 인식되어 주석처리함
    Your mission is to inject &lt;script>alert(1);&lt;/script>
    -->
    <br><br>
    </body>
    </html>

    GET 방식이라는 것 외에는 힌트가 될 만한 것이 보이지 않는다.

     

    input 박스에 1을 입력하면

    입력한 값 그대로를 출력한다.

     

    GET방식이므로 URL 창에 "?code=<script>alert(1);</script>"를 입력하면

    "no hack"을 출력한다.

     

    input 박스에 <>;()를 입력하면

    <, >, ;, ()는 필터링의 대상이 아닌 것을 알 수 있다.

     

    input 박스에 alert나 script를 입력하면

    "no hack"을 출력한다.

    즉, alert와 script 문자열 그대로를 필터링한다.

     

    이 경우, 문자 사이사이에 NULL 문자(URL encoding 방식으로 %00)을 입력하면 된다.

    "?code=<s%00c%00r%00i%00p%00t>a%00l%00e%00r%00t(1);</s%00c%00r%00i%00p%00t>"를 입력하면

    문제를 해결할 수 있다.

    'Wargame > Webhacking.kr' 카테고리의 다른 글

    <Webhacking.kr> old-26  (0) 2021.12.12
    <Webhacking.kr> old-27  (0) 2021.12.12
    <Webhacking.kr> old-24  (0) 2021.12.06
    <Webhacking.kr> old-22  (0) 2021.12.05
    <Webhacking.kr> old-21  (0) 2021.12.03
Designed by Tistory.