portswigger 사이트에서 stored xss 문제를 풀어보려고 합니다.
이 문제는 인코딩 되지 않은 상태의 html 스크립트에 악성 스크립트를 넣어서 알림창이 뜨게 만드는 문제입니다.
먼저 사이트에 접속해 볼까요?
여기서 게시물 하나에 들어가서 코멘트를 작성해 봅시당
코멘트 창에
<script>alert(1)</script>
를 작성해 보고, 코멘트를 등록하면
이렇게 경고창이 뜨면서, 문제가 해결되었다고 뜹니다.
코멘트 창에 이렇게 악성스크립트를 넣으면, 자바 스크립트에 하나의 스크립트 코드로서 반영되고, 사이트는 그것을 인식하여 사용자들이 이 게시글에 들어올 때마다 이렇게 경고 알림창이 뜨게 작동시키는 문제입니다.
자바 스크립트에 코멘트에 적은 스크립트가 반영된 것을 확인해 봅시당
데브툴을 열어, 작성한 스크립트가 자바 스크립트 문자열 안에 반영되어 작동되고 있음을 확인할 수 있습니다.
이번에는 dom based xss문제를 풀어 봅시당. 이 문제는 블로그의 검색기능에 존재하는 dom 기반 사이트 간 스크립트 취약성을 이용한 문제로, 검색창에 스크립트를 집어넣어 경고 함수를 호출해 봅시다.
먼저, 사이트에 들어가 봅시다.
공격을 수행할 사이트에 들어가면, 검색창이 하나 뜰 것입니다😎
이 검색창에 아래의 코드를 작성하고, 서치 버튼을 눌러 봅시당.
<img src=1 onerror=alert(1)>
그러면 이렇게 경고 함수가 뜨면서, 문제가 해결되었다고 뜹니다.
이 문제는 검색창에 악성 스크립트를 작성하고, 악성 스크립트가 사이트에 반영되면서 src 오류를 발생시키면서 경고함수를 호출하는 원리로, 일반 사용자가 이 악성 스크립트가 검색된 게시물에 접근할 때마다 경고 함수를 호출시키게 됩니다.