특징
- 사용자가 요청한 악성스크립트가 사용자 측에서 반사(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>';
}
?>
- 사용자 입력값이 그대로 출력
입력값을 별도의 검증이난 인코딩 없이 html에 출력 - XSS 보호기능 비활성화
대응방안
- 사용자 입력 값 필터링 및 인코딩:
사용자로부터 입력받은 데이터를 HTML 엔티티로 인코딩하여 출력하여 악의적인 스크립트 태그가 HTML 태그로 해석되지 않고, 단순 텍스트로 표시 - X-XSS-Protection 헤더 활성화
XSS 공격을 방지하기 위해 브라우저의 XSS 보호 기능을 활성화 - Content-Security-Policy설정
- 의심되는 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 |