=> 스크립트를 통해 공격하는 것으로 보아 xss 공격인 것 같다.
일단 당연하게도 <script>alert(1);</script>을 전송했더니 no hack 이 떴다.
1. 우선 url이 필터링 되었는지 확인해 보았다.
시도 1) ?code=<script>alert%281%29%3B<%2Fscript>
즉, <script>alert (1);</script>으로 동일하다. 딱히 특수문자가 필터링되지는 않는 것 같다.
2. <script> 만 쳐보았다. no hack이 떴다.
찾아보니 xss 필터링 과정에서 script가 상당히 치명적인 문자열이 될수 있다고 한다.
참고:
https://csbankstorage.blogspot.com/2016/11/xss_98.html
시도2) <scr<script>ipt>alert(1);</scr<script>ipt>
=> 이것도 안되었다. 혹시 alert도 필터링되나 싶어서 쳐봤더니 역시 no hack이 뜬다.
alert도 필터링 해주도록 하자.
시도3) <scr<script>ipt>alalertert(1)</scr</script>ipt>
: 안된다. 좀더 머리를 굴려보자.
좀더 이것저것 입력해보았더니 script, alert 중에 특정한 문자열이 2개이상 입력되면 얄짤없이 no hack이 뜨는 것을 확인할 수 있었다. ex) sc, ri,ript, al...
이때, 문장의 종료를 나타내는 null값을 문자열 사이사이에 입력해 넣고, get방식으로 정보를 넘겨주기 때문에
url로 넘겨주면 script가 무사히 전달될수 있다.
4트)
<s%00c%00r%00i%00p%00t%00>a%00l%00e%00r%00t%00(1);</s%00c%00r%00i%00p%00t>
=>old 23 pwned.
+) Null byte injection
: URL 로 인코딩 된 널바이트 문자(%00)을 이용해 악의적인 공격자에 의해 의도하지 않은 동작을 시키는 것이다.
문자열을 저장할 때 null 문자를 삽입하여 null 문자열이 있는 곳까지 출력하고 끝난 것으로 간주함을 이용한 공격이다.
=> 하지만 null문자 이후로는 그대로 공격이 전달되게 된다.
https://www.whitehatsec.com/glossary/content/null-byte-injection
+) 혹시 %00이후에 alert를 입력하면 alert이 그대로 입력되나 궁금했는데, 그건 이미 필터링 되어있었던것 같다.
'Wargame > webhacking.kr' 카테고리의 다른 글
Webhacking.kr- challenge 10,36,42, 43 (0) | 2020.02.23 |
---|---|
Webhacking.kr) old-33 WRITE-UP (0) | 2019.12.30 |
Webhacking.kr 150점 write-up (0) | 2019.12.04 |
Webhacking.kr- 50,100점 문제 writeup (0) | 2019.11.20 |