23번을 클릭하면 위와 같은 화면이 뜬다.
<script>alert(1);</script>를 inject하는 게 미션이라고 해서 입력창에 넣어보았다.
그랬더니 no hack이라는 메시지가 출력되었다.
어디가 걸려서 no hack이 되는지 찾아보기 위해 각각 입력해보았는데, script와 alert를 입력하면 no hack이 출력되었다.
그래서 script와 alert를 url encoding 해주었다.
www.w3schools.com/tags/ref_urlencode.ASP
HTML URL Encoding Reference
HTML URL Encoding Reference URL - Uniform Resource Locator Web browsers request pages from web servers by using a URL. The URL is the address of a web page, like: https://www.w3schools.com. URL Encoding (Percent Encoding) URL encoding converts characters i
www.w3schools.com
위 페이지에 나와있는 URL Encode 표를 참고하여 변환해주었다.
alert = %61%6C%65%72%74
script = %73%63%72%69%70%74
<%73%63%72%69%70%74>%61%6C%65%72%74(1);</%73%63%72%69%70%74>
위의 값을 URL에 입력하였더니 no hack이 떴다.
URL Encode로 풀리는 문제가 아닌 것 같다.
어떻게 풀어야 하는지 고민하면서 이것저것 입력해보다가 alert와 script만 걸리는 게 아니라는 걸 알아냈다.
문자열이 2개가 입력되면 no hack이 뜨면서 필터링이 되는 것 같다.
그래서 문자열을 어떻게 띄워서 인식시킬 수 있을까 생각하다가 떠오른 게 %00(Null)이다.
<s%00c%00r%00i%00p%00t>a%00l%00e%00r%00t(1);</s%00c%00r%00i%00p%00t>
위처럼 문자 사이사이마다 null을 넣어주었고, 이를 입력했더니 문제가 풀렸다.
'Wargame > Webhacking.kr' 카테고리의 다른 글
Webhacking.kr old 47번 문제 풀이 (0) | 2021.05.08 |
---|---|
Webhacking.kr old 59번 문제 풀이 (0) | 2021.05.07 |
Webhakcing.kr old 20번 문제 풀이 (0) | 2021.05.02 |
Webhacking.kr old 1번 문제 풀이 (0) | 2021.05.01 |
Webhacking.kr old 58번 문제 풀이 (0) | 2021.05.01 |