DOM XSS : LAB [2]
DATE : 2024/1/8
Last updated
DATE : 2024/1/8
Last updated
이번에도 LAB으로 들어가면 블로그를 검색할 수 있는 검색 바가 제공되고 있다.
페이지의 동작 방식을 알아보기 위해 검색 바에 "hanhxx"를 입력해보면
이전 LAB과 동일하게 결과 문구와 search parameter에 사용자가 입력한 값이 들어가 있는 걸 볼 수 있다.
결과 문구가 어떻게 만들어지는 지 Response Packet을 확인해보면
document.write()가 아닌 innerHTML 속성을 활용해 <span> tag에 검색 내용을 넣음으로써
검색어를 문구에 삽입하는 로직임을 알 수 있다.
innerHTML을 사용하게 되면
span tag 안으로 query 값이 들어가게 되는데
만약 태그를 새로이 만들고, 이 태그 속성에 스크립트를 삽입한다면
작성되어 있는 script를 이용해 수월하게 XSS 공격을 수행할 수 있을 지도 모른다..!
<img> tag의 경우에는 src 속성에 작성된 경로로 이미지를 요청해 화면에 출력하게 되는데
만약 이 경로가 정상적으로 주어지지 않은 경우에는 에러가 발생하게 된다.
에러가 발생했을 때 어떻게 처리할 것인가를 지정하는 속성, onerror에 스크립트를 작성하면
src에 1을 넣음으로써 의도적으로 에러를 발생 시켜 결과적으로 alert(1)이 실행되도록 만들 수 있는 것.
search parameter로 <img> tag에 스크립트를 삽입하게 되면
성공적으로 스크립트가 실행된 결과를 확인할 수 있다. 👍