특징

  • 사용자가 요청한 악성스크립트가 사용자 측에서 반사(Reflected)되어 동작하는 취약점
  • 공격자의 악성스크립트가 데이터베이스와 같은 저장소에 별도로 저장되지 않고 사용자의 화면에 즉시 출력되면서 피해가 발생
  • 공격자는 악성스크립트가 포함된 URL을 이메일, 메신저 등을 통해 사용자가 클릭할 수 있도록 유도

DVWA 실습

  • DVWA Reflected XSS 탭에 hacking 이라는 단어를 입력
  • URL 이변경되면서 웹페이지 프론트엔드 부분도 변경이 있음을 확인

  • <script>alert(document.cookie)</script>
  • 쿠키를 노출 시켜주는 스크립트 입력

  • 입력한 값이 그대로 html에 반영
  • 127.0.0.1/DVWA/vulnerabilities/xss_r/?name=<script>alert%28document.cookie%29<%2Fscript>#
  • 위의 URL을 하이퍼링크로 이용한다면 클릭을 유도하여 XSS 공격시도

소스코드 분석

<?php

header("X-XSS-Protection: 0");

// Is there any input?
if (array_key_exists("name", $_GET) && $_GET['name'] != NULL) {
    // Feedback for end user
    echo '<pre>Hello ' . $_GET['name'] . '</pre>';
}

?>
  1. 사용자 입력값이 그대로 출력
    입력값을 별도의 검증이난 인코딩 없이 html에 출력
  2. XSS 보호기능 비활성화

대응방안

  1. 사용자 입력 값 필터링 및 인코딩:
    사용자로부터 입력받은 데이터를 HTML 엔티티로 인코딩하여 출력하여  악의적인 스크립트 태그가 HTML 태그로 해석되지 않고, 단순 텍스트로 표시
  2. X-XSS-Protection 헤더 활성화
    XSS 공격을 방지하기 위해 브라우저의 XSS 보호 기능을 활성화
  3. Content-Security-Policy설정
  4. 의심되는 URL 클릭 금지

'CERT' 카테고리의 다른 글

웹 모의해킹: SQL Injection(Blind)  (2) 2024.10.05
웹 모의해킹: SQL Injection  (1) 2024.10.05
웹 모의해킹: Stored XSS  (0) 2024.10.05
웹 모의해킹: DOM Based XSS  (2) 2024.10.05
웹 모의해킹: Weak Session IDs  (2) 2024.10.05

+ Recent posts