Recent Posts
Recent Comments
Archives
starting point
xss-game-level 4 본문
입력된 시간만큼 타이머가 만들어지는 웹사이트이다. 또한 입력한 시간이 추력되느 것을 알 수 있다.
입력한 시간이 지나면 위와 같은 알림창이 나타난다.
html코드를 보면 입력한 숫자가 startTimer()의 매개변수가 되고, <div>태그의 문자열로 입력되는 것을 볼 수 있다.
<div>태그를 대상으로 우선 공격해 보았다.
<script>alert(1);</script>
스크립트 문이 그대로 출력되며 경고창이 뜨지 않는 것을 볼 수 있다.
<div>태그안에 <script>태그가 그대로 출력된 것을 보면 "<"를 이스케이프한 것으로 추측된다. 그렇다면 startTimer()함수의 매개변수를 공략할 수 있다.
');alert(1);//를 입력했다.
startTimer()함수를 끝마치고 alert(1)함수를 넣은 후 뒤에 있는 코드는 주석으로 날림으로써 원하는 코드를 실행시킬 수 있게 되었다.
이 문제는 사용자가 전달한 값을 그대로 이용하는 것이 위험하다는 것을 보여준다. 이러한 취약점은 입력된 문자열을 검증하지 않기 때문에 발생한다. 이를 위해서 우선 특수문자들을 escape처리를 하거나 서버 단에서 예외를 처리하여 입력할 수 없게 하여 취약점을 보완해야 한다.
'WarGame_WriteUp > XSS-Game' 카테고리의 다른 글
xss-game-level 6 (1) | 2020.02.19 |
---|---|
xss-game-level 5 (0) | 2020.02.19 |
xss-game-level 3 (0) | 2020.02.19 |
xss-game-level 2 (0) | 2020.02.19 |
xss-game-level 1 (0) | 2020.02.19 |