script tag injection
Check whether a raw script tag executes when user input is parsed as an HTML document.
HTML payload 测试
该场景测试用户输入在 HTML/DOM 中的渲染方式,而非 iframe sandbox 行为。
- 입력값이 텍스트로 이스케이프되는지, 실제 script 태그로 파싱되는지 확인
- HTML 필터가 script 태그와 위험 속성을 제거하는지 확인
- CSP script-src 가 inline script 실행을 막는지 확인
페이로드
복사할 payload
서버가 입력을 그대로 HTML 문서에 반영하는지 확인하는 가장 기본적인 payload.
미리보기
미리보기는 학습용으로 의도적으로 unsafe 렌더링을 수행합니다. 실제 서비스에서는 이 payload 가 텍스트로 이스케이프되거나 제거되어야 합니다.
로그
// 로그 없음
해설
- 서버가 사용자 입력을 HTML 문서에 그대로 반영하면
<script>태그가 파서에 의해 실행될 수 있습니다. - 반대로
innerHTML로 나중에 삽입한 script 태그는 최신 브라우저에서 보통 실행되지 않습니다. 그래서 이 페이지의 미리보기는 전체 HTML 문서 파싱 상황을 재현하기 위해 격리된 미리보기를 사용합니다. - 대응은 출력 컨텍스트별 인코딩, 신뢰 가능한 HTML 필터, CSP
script-src조합으로 확인하세요.