728x90
저번 문제와 동일하게 검색기능에 DOM-based XSS 취약점이 존재하고 이번에 innerHTML을 사용해 div요소의 HTML내용을 바꿀라 한다. alert함수를 호출하면 문제가 풀린다.
script문을 입력했을때
입력값이 출력되지 않아 처음엔 필터링이 되어 있는 줄 알았다.
script문뿐만 아니라 태그(<>)를 사용하면 태그 안에 내용이 출력되지 않았다.
찾아보니 innerHTML은 <script>태그를 일반 text문자로 인식하게 되어 있다.
이는 code injection과 같은 공격을 방지하기 위해서 그렇다.
https://www.w3.org/TR/2008/WD-html5-20080610/dom.html#innerhtml0
그래서 우린 다른 방법을 찾아야 되는데
img 태그를 이용하기로 했다.
img 태그의 onerror 기능을 사용할 것인데
<img src="qwe" onerror=alert(0);>로 src에는 이미지의 경로를 쓰고 만약 이미지를 불러오지 못하거나 에러가 났을 경우 onerror가 실행된다.
이 경우엔 일부로 에러를 발생시켜 alert() 함수가 호출되게 한다.
728x90