SVG / MathML onload payload
SVG, MathML 같은 비 HTML 네임스페이스 태그의 이벤트 속성과 중첩 HTML 이 필터를 우회하는지 확인한다.
HTML payload 테스트
이 시나리오는 iframe sandbox 가 아니라 사용자 입력이 HTML/DOM 으로 렌더링되는 지점을 검증합니다.
- svg/math 태그를 허용할 필요가 있는지 확인
- namespace 안의 이벤트 속성과 중첩 HTML 이 제거되는지 확인
- 태그 이름만 보는 블랙리스트가 아닌 구조적 HTML 필터를 쓰는지 확인
페이로드
복사할 payload
script 태그 없이 onload 이벤트만으로 실행되는 대표적인 SVG payload.
붙여넣을 곳
본인이 권한을 가진 dev/staging의 에디터, 댓글, 프로필 또는 HTML 렌더링 입력란
판정 기준
실행되면 위험 신호입니다. 코드가 텍스트로 표시되거나 위험 요소가 제거되어야 기대한 방어 결과입니다.
미리보기
미리보기는 학습용으로 의도적으로 unsafe 렌더링을 수행합니다. 실제 서비스에서는 이 payload 가 텍스트로 이스케이프되거나 제거되어야 합니다.
로그
// 로그 없음
해설
- SVG / MathML 은 HTML 과 다른 namespace 를 쓰기 때문에 느슨한 필터가 태그 구조나 이벤트 속성을 놓치는 경우가 있습니다.
- 실제 서비스에서 SVG 가 꼭 필요하지 않다면 제거하는 편이 단순하고 안전합니다.
- 허용해야 한다면 태그, 속성, URL 속성을 모두 구조적으로 검증하세요.