HW_chick hacker
DVWA 실습 - Reflected Cross Site Scripting (XSS) 본문
반사된 XSS 실습

low 단계

test 입력 시 "Hello test" 로 출력된다.
http://웹 주소/dvwa/vulnerabilities/xss_r/?name=test#
해당 name값에 그대로 들어가며 기본적인 script 알림 구문을 넣어보겠다.


<pre>태그 안에서 <script> 태그가 탈출한다. 그 외에도 html 태그들도 삽입된다.
medium 단계

low 단계처럼 script구문을 넣으면 <script>태그가 필터링이 되어 있다.
script가 아닌 필터링 되지 않는 구문을 넣어 보며 우회 해보겠다.

<img src=x onerror=alert(1)>
high 단계


-> 필터링이 되지 않고 입력되는 값 그대로 출력이 된다.

해당 'name' 변수는 if, else를 활용해 htmlspecialchars를 활용해 XSS를 대응하고 있다.
XSS 대응 방안

태그 사용을 제한하기 위해 태그 문자(<,>)는 HTML Entity 형태로 치환하여 입력된 태그 문자는 문자열로만 인식되도록 구현한다.


블랙리스트 방식으로 <script> 태그가 입력될 경우 공백으로 치환되도록 구현해야 한다.
화이트리스트 방식이 좀 더 보안적인 측면에서 우수하지만 블랙리스트 방식에 비해 사용성이 떨어질 수 있어 다방면에서 고려하여 구현해야한다.


"<script>alert(1)</script>"와 같이 사용하려면 최소 10자 이상을 작성해야하기 때문에 불필요한 입력 문자 수가 길 필요가 없는 입력 필드는 길이를 제한하여야 한다.
-> 클라이언트 측에서 maxlenth 속성을 삭제하여 우회 할 수 있기 때문에 데이터베이스에서도 길이 제한을 적용해야 한다.
- 보안 라이브러리(AntiXSS, OWASP 등)을 사용하여 개발한다.
'Activity > DVWA' 카테고리의 다른 글
| DVWA실습 -File Inclusion (0) | 2024.07.25 |
|---|---|
| DVWA실습 - SQL Injection (0) | 2024.07.18 |
| DVWA실습 - Command Execution (0) | 2024.07.16 |
| DVWA 실습 - Brute Force (0) | 2024.07.12 |