파일 업로드 미리보기 XSS
SVG, XML, HTML 파일을 업로드 후 미리보기로 렌더링할 때 active content 가 실행되는지 확인한다.
HTML payload 테스트
이 시나리오는 iframe sandbox 가 아니라 사용자 입력이 HTML/DOM 으로 렌더링되는 지점을 검증합니다.
- 업로드 파일을 같은 origin 에서 HTML 로 열지 않는지 확인
- SVG 는 이미지로만 제공하거나 별도 다운로드 도메인/첨부 헤더를 사용하는지 확인
- MIME sniffing 방지를 위해 Content-Type 과 X-Content-Type-Options 를 설정하는지 확인
페이로드
복사할 payload
업로드된 SVG 를 img 로만 쓰는지, inline/object/embed 로 렌더링하는지 확인한다.
붙여넣을 곳
본인이 권한을 가진 dev/staging의 에디터, 댓글, 프로필 또는 HTML 렌더링 입력란
판정 기준
실행되면 위험 신호입니다. 코드가 텍스트로 표시되거나 위험 요소가 제거되어야 기대한 방어 결과입니다.
미리보기
미리보기는 학습용으로 의도적으로 unsafe 렌더링을 수행합니다. 실제 서비스에서는 이 payload 가 텍스트로 이스케이프되거나 제거되어야 합니다.
로그
// 로그 없음
해설
- 파일 업로드 XSS 는 저장형 XSS와 비슷하지만, 위험 표면이 첨부파일 미리보기/다운로드 도메인/운영자 검수 화면으로 퍼집니다.
- SVG 는 이미지처럼 보이지만 XML 기반 문서라서 inline 렌더링, object/embed, 잘못된 MIME type 에서 active content 문제가 생길 수 있습니다.
- 사용자 업로드 파일은 가능하면 별도 cookie 없는 도메인에서 제공하고, HTML 로 inline 실행되지 않도록 Content-Disposition 과 MIME 정책을 고정하세요.