Reflected XSS : LAB [5]
DATE : 2024/1/12
Last updated
DATE : 2024/1/12
Last updated
이번 LAB에서는 모든 태그가 차단 되는 와중 Reflected XSS를 수행하는 것이 목표이다.
이전 LAB에서는 그래도 일부 태그는 사용할 수 있었는데,, 이번엔 모든 차단된다고 한다.
하지만 우리에겐 아직 희망이 남아있다!
HTML tag라 하면 p, div, input 처럼 지정되어있는 태그를 떠올리기 마련이지만
tag를 직접 만들 수 있다고 한다.
예를 들어 search parameter에 custom-tag라는 이름의 태그를 입력하게 되면
이는 HTML에서 제공하는 태그가 아닌 사용자가 만든 태그이기 때문에 차단되지 않고
Response 상에 반영되고 있는 걸 볼 수 있다.
따라서 우리는 custom tag를 만들어서 스크립트를 삽입하면 된다는 얘기!
이번 LAB은 사용자 브라우저에서 cookie 정보를 팝업 창으로 띄워야 하기 때문에
최종적으로 실행하고자 하는 스크립트는 위와 같다.
이 상태에서 사용자가 취약점이 존재하는 페이지로 이동하여 스크립트를 실행하도록 만들기 위해서
location을 사용했다.
이때 눈 여겨볼 부분은 id & # 인데 현재 custom-tag에 사용한 event handler는 onfocus로
이걸 설정해둔 element가 사용자에 의해 선택되었을 때 동작한다.
스크립트를 삽입한 custom-tag가 focus 되어야만 event handler가 동작하면 스크립트가 실행되는데
사용자가 이 태그를 건들 때까지 마냥 기다리고 있을 수 없기 때문에
#를 이용해 자동으로 id가 here인 element에 focus 되도록 스크립트를 작성한 것이다!
스크립트를 저장하고 피해자에게 링크를 전달하게 되면 의도한 바와 같이
사용자 브라우저에는 팝업 창이 뜸으로써 공격자가 작성한 스크립트가 정상 실행 되었음을 확인할 수 있다.