DVWA실습(XSS-Reflected)

1. XSS - Reflected 이란?

사용자가 조작할 수 있는 입력값을 갖는 요청이 즉각적으로 사용자에게 응답되고 이 응답에 사용자의 입력값이 안전하지 않은 방식으로 포함될 때 발생하는 XSS를 Reflected-XSS라고 합니다.
요약하여 악성스크립트를 요청하여 서버측  응답을 가져온다.

 

2. low 단계

더보기
파라미터 입력

- 해당 페이지의 파라미터를 입력하는 칸이 있다.

파라미터

- 입력값을 삽입하였을때 파라미터가 넘어가는것을 확인할 수 있다. 

low단계 개발자 도구

- 이를 개발자 도구를 통하여 확인해본결과 파라미터 그대로 간다는것을 확인할 수 있다. 

xss삽입

- 임의의 xss문구를 삽입하였다.

결과도출

- 결과 아무런 필터가 없어 XSS문구가 발생이 되었다.

3. medium 단계

더보기
low단계 반응

- low단계에서 사용해봤던 방식으로 접근해봤으나 필터링이 되어있는듯 하다.

- 응답값이 script 문구만 없고 나머지는 응답이 되었기에 <script> 문구가 블랙리스트 방식으로 필터링된다는 판단이 되었다.

대문자 우회

- script 대소문자 혼용하는 기법으로 우회를 통하여서 접근을 시도하였다.

우회

- 해당 내용이 되는것을 확인할 수 있다.

- 어떠한 필터가 되어있는지 소스코드를 확인해보겠다.

소스코드

- 해당 소스코드를 분석한 결과 <script> 문구를 공백으로 치환하는 방식으로 필터링이 되어있다.

- 이 경우에는 필터링 되는 문자를 공백이 되기 때문에 이중으로 사용하면된다.

ex) <scr<script>ipt>alert(123)</scr<script>ipt>

- 이 외에도 <script> 태그 말고 img 태그나 다른 태그를 사용하는 방법과 특수문자 치환하는 방식이 있다.

4. high 단계

더보기
이전의 방법 사용

- 이전 방법을 사용했을때 <script>를 쓸때 문자적을때 이어지는 모든것이 치환되는 필터링이 사용되는것을 유추해볼 수 있다.

img태그 사용

- <script> 태그를 사용할 수 없어 img태그를 사용하기로 하였다.

img태그 사용 후 결과도출

- 그 결과 XSS가 삽입되는것을 확인할 수 있다.

- 상세한 필터링을 확인하기 위하여 소스코드를 확인해보겠다.

소스코드

- 소스코드 분석한 결과 <script>태그에 대한 문자 마다 이어지는 문자에 치환하는 필터링이 있는것을 확인할 수 있다.

5. 대응방안

더보기

- 입력값 제한 : 입력값을 제한하여 스크립트를 삽입하지 못하도록 한다.

- 입력 값 치환 : 스크립트문 사용에 태그가 사용되기 때문에 태그문자<>를 치환한다.

- HTML 태그 사용해야할 블랙리스트 방식으로 입력 값 검증 필터링 (태그관련)

- 웹방화벽 사용 (WAF, Web Application Firewall)를 사용하여 비정상적인 데이터 전송 차단

출처

버그바운티 클럽 : https://www.bugbountyclub.com/pentestgym/view/44

 

Reflected XSS (반사된 XSS) | Pentest Gym | 버그바운티클럽

이번 훈련에서는 반사된(Reflected) XSS에 대해 알아보고 실습 문제를 통해 반사된 XSS 취약점을 식별하고 테스트하는 방법에 대해 훈련합니다.  반사된

www.bugbountyclub.com

 

'DVWA' 카테고리의 다른 글

DVWA실습 (SQLInjection-blind)  (1) 2023.12.06
DVWA실습 (XSS-Stored)  (0) 2023.12.05
DVWA실습 (XSS -DOM)  (1) 2023.12.04
DVWA실습 (File Inclusion)  (0) 2023.12.03
DVWA 실습(File Upload - Hard)  (0) 2023.12.01