Webhacking.kr)  OLD-23 writeup
Wargame/webhacking.kr

Webhacking.kr) OLD-23 writeup

=> 스크립트를 통해 공격하는 것으로 보아 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