어 나 정현욱.

[ DVWA ] Reflected Cross Site Scripting ( Low ) Write Up 본문

DVWA

[ DVWA ] Reflected Cross Site Scripting ( Low ) Write Up

정현욱 2023. 7. 13. 13:09

DVWA ( Damn Vulnerable Web Application )


취약점 진단 및 모의 해킹을 공부/실습할 수 있도록 만들어진 웹 애플리케이션

XSS ( Cross Site Scripting )

JavaScript와 같은 스크립트 코드를 이용하여

개발자가 의도하지 않은 기능을 작동하게 하는 웹 해킹 기법입니다.

CSS가 맞지만 이미 Cascading Style Sheets의 약어이기 때문에 XSS라고 부릅니다.

( XSS는 클라이언트 단에서 공격하는 Client Side 공격 중 하나입니다. )

 

XSS의 종류에는 크게 Reflected, Stored, DOM based 종류가 있습니다.

오늘 포스팅에는 이 중에서 Reflected에 대해 알아보겠습니다. 😉

 

이름을 입력하면 "Hello $NAME"을 웹에 띄어주는 서비스

이름을 입력하면 웹 페이지에 "Hello $NAME"을 띄어주는 서비스입니다.

위 그림에서 김경X정상적인 입력값(이름)을 넣었습니다.

 

김경X가 XSS를 시도하는 모습...

위 그림은 김경X가 XSS를 시도하는 모습입니다.

이름 대신에 script 태그JavaScript를 입력해서 alert(1)을 실행시키려고 하고 있습니다.

 

<script>alert(1)</script> 실행 결과

스크립트 실행 결과입니다.

alert(1) 대신, alert(document.cookie)나 다른 구문을 입력하면 매우 큰 피해가 발생할 수 있는 공격입니다.

 

XSS 공격은 공격하기 비교적 쉽기도 하고,

우회 방법도 매우 다양하기 때문에 항상 위험한 취약점으로 꼽히는 취약점입니다.

 

Write Up


Reflected Cross Site Scripting 페이지

해당 서비스는 제가 위에서 들었던 예시와 같게,

이름을 입력하면 "Hello (name)"을 웹 페이지에 띄어주는 서비스입니다.

 

먼저 개발자가 의도한 대로 정상적인 입력값을 넣어보겠습니다.

 

정상적인 입력값

Juhong을 입력했더니 "Hello Juhong"을 웹 페이지에 띄어준 것을 볼 수 있습니다.

그럼 이번에는 XSS 공격을 시도해보겠습니다.

 

<script>alert(1)</scrip> 입력

정상적인 입력값을 넣지 않고

<script>alert(1)</script>를 입력했더니 그대로 실행되는 모습을 볼 수 있습니다.

 

위와 같은 취약점은 사용자에게 입력 받은 값을
검증 및 필터링하지 않고 그대로 웹 페이지에 나타내기 때문에 발생하는 취약점입니다.
XSS를 방어하기 위해서는 충분한 필터링이 꼭 필요합니다.

이 글이 Reflected XSS를 이해하는데 도움이 됐으면 좋겠습니다. 😉

'DVWA' 카테고리의 다른 글

[ DVWA ] Command Injection ( Low ) Write Up  (8) 2023.07.12
[ DVWA ] Brute Force ( Low ) Write Up  (10) 2023.07.10