이벤트 핸들러 속성 삽입
img onerror, details ontoggle 같은 이벤트 핸들러 속성이 렌더링 과정에서 살아남아 실행되는지 확인한다.
HTML payload 테스트
이 시나리오는 iframe sandbox 가 아니라 사용자 입력이 HTML/DOM 으로 렌더링되는 지점을 검증합니다.
- onerror, onclick, onload 등 on* 속성이 제거되는지 확인
- 태그 allowlist 는 있어도 속성 allowlist 가 느슨하지 않은지 확인
- CSP 가 inline event handler 를 차단하는지 확인
페이로드
복사할 payload
이미지 로드 실패 이벤트를 이용하는 대표적인 HTML attribute XSS.
붙여넣을 곳
본인이 권한을 가진 dev/staging의 에디터, 댓글, 프로필 또는 HTML 렌더링 입력란
판정 기준
실행되면 위험 신호입니다. 코드가 텍스트로 표시되거나 위험 요소가 제거되어야 기대한 방어 결과입니다.
미리보기
미리보기는 학습용으로 의도적으로 unsafe 렌더링을 수행합니다. 실제 서비스에서는 이 payload 가 텍스트로 이스케이프되거나 제거되어야 합니다.
로그
// 로그 없음
해설
<script>태그를 제거해도onerror,onclick,onload같은 이벤트 속성이 남으면 스크립트 실행이 가능합니다.- 태그 allowlist 와 별도로 속성 allowlist 를 관리해야 하며,
on*속성은 기본적으로 제거하는 편이 안전합니다. - CSP 에서 inline event handler 를 막는지도 함께 확인하세요.