[Webhacking.kr] 23번

2018. 3. 27. 17:57


Your mission is to inject <script>alert(1);</script>



라고한다.



일단 잘 모르겠으면 소스를 보자


get방식으로 index.php에 보내는 것을 볼 수 있다.


한번 아무거나 입력해보자.



code=234 로 code값에 넣어져 전송되고 그 값이 그대로 나오는 것을 볼 수 있다.


우리가 해야하는 것은 스크립트 실행이므로 스크립트를 저기 넣으면 되는 것인가?


싶어서 그대로 넣어보았다...



no hack이란다.. 일단 필터가 있나보다 뭐가 필터인지는 잘모르겠다. 시도를 좀 해볼까


... 시도해봤는데 al만 넣어도 핵이란다 ㅂㄷㅂㄷ;


필터가 대단히 잘걸려있다... 이걸 우회해서 alert(1);을 해야한다.




오... 앞부분에 null값을 넣고 시작했더니 alert가 온전히 출력되었다. 이렇게 우회가 되는구나...;


아마 필터하려고 검사하는 부분에서 첫부분이 null값이 들어가 있어서 null에서 끓겨버려서 필터링이 안되는 것같다.


이제 뒷부분에 <script>alert(1);</script>을 넣으면 되나 싶어서 해보았다.



크롬이 막아버렸다... 아래에러 코드를 보니 ERR_BLOCKED_BY_XSS_AUDITOR라고... XSS 공격을 막은거 같다...


찾아보니 롬에서 XSS에 대한 테스트를 하면 발생하는 것으로, 이는 웹브라우저에 탑재된 XSS Auditor가 블랙리스트에 등록된 스크립트를 발견했을 때 발생시키는 에러라고 한다. XSS Auditor는 크롬과 사파리에 탑재되어 있고, 기본 동작하도록 설정되어 있고, XSS Auditor의 동작은 X-XSS-Protection이라는 HTTP Response 헤더에 의해 결정된다. 


그래서 우회하려면 프록시 설정하고 버프슈트같은걸로 저 헤더끄고하면 된다고 한다. (http://xiphiasilver.net/?p=293)


귀찮아서 익스플로러에서 해보기로 했다.


잉... 근데 풀려있다 ㅋㅋ; 아마 스크립트입력시킨 시점에서 서버에서는 클리어로 판정해줫나보다 ㅋㅋ



심지어 익플에서도 안된다 ...



나중에 한번 저 옵션을 끄고한번 해봐야겠다 ㅋ



+ 추가!!!


다른 사람이 푼 라이트업도 보고싶어서 검색해보니 필터링을 우회하려고 문자중간중간에 null값을 넣어서 보내줬다고 한다.


그러니까 이런식으로 보냈다는 건데...


?code=%00<%00s%00c%00r%00i%00p%00t%00>%00a%00l%00e%00r%00t%00(%001%00)%00;%00<%00/%00s%00c%00r%00i%00p%00t%00>%00


<script>alert(1);</script> 중간에 %00값을 하나하나 집어넣어준것이다.


이렇게 보내보니....



이렇게 풀린다... ㅋㅋ; 물론 null값때문에 약간 이상하게 보이긴하다만... 저값도 <옆으 %00들을 없애면 좀 보기좋게 나온다.



신기하네... 물론 스크립트가 실행되진않았지만;; 아까는 크롬에서 에러코드띄우면서 막던거를 여기서는 안막는다...ㅋㅋ


+ Recent posts