본문 바로가기
Portswigger/XSS

Portswigger - Reflected XSS with some SVG markup allowed solution

by jh117jh 2023. 10. 3.
728x90

이번 문제는 relaected XSS 취약점이 있지만 일반 태그들을 모두 차단하고 있고 일부 SVG태그와 이벤트만 누락되어 있다.

 

우선 SVG태그란?

 

웹상에서 벡터 이미지를 구현하기 위해 사용하는 마크업 태그이다. SVG 이미지를 구현하기 위해서는 <svg> 태그로 시작하는데 width, height 속성을 사용하여 이미지의 가로와 세로 길이를 조절할 수 있다.

 

검색창에 <svg?123</svg>를 입력하면

태그가 정상적으로 들어가는걸 볼 수 있다.

 

그럼 태그는 해결되었고 이벤트속성을 확인해야 되는데

burp suite로 패킷을 잡은 뒤

이벤트 속성을 brute force로 넣어보면 

onbegin 이벤트 속성이 정상적으로 작동하는 걸 볼 수 있다.

onbegin 이벤트는 시간이 시작되면 엘레멘트에 발생된다.

즉, 애니메이션 이벤트 속성이다.

 

svg의 애니메이션 요소는 3개가 있다.

3개의 요소 중 작동하는 요소는 anmatetransform요소가 있다.

 

그럼 이제 확인된 태그와 요소, 이벤트 속성을 이용해 XSS를 시도하면

<svg><animatetransform onbegin=alert(1)>

정상적으로 alert함수가 호출되는 걸 볼 수 있다.

728x90