728x90
이번 포스트에서는 DVWA의 CSP Bypass 문제를 실습해보겠다.
## 공격 정의
- Content Security Policy (CSP)를 우회하여 악성 스크립트를 실행시키는 공격 방법
- 참고 : CSP는 웹사이트에서 발생할 수 있는 XSS 공격 등의 보안 취약점을 막기 위한 기술 중 하나로, 웹사이트에서 허용하는 리소스들을 명시하여 악성 스크립트 실행을 방지하는 역할을 함
## 공격 다이어그램
- 정책에서 허용된 도메인의 이름을 악용하여, 악성 스크립트를 실행시키는 방법
- 정책에서 허용된 리소스에 취약점이 존재하여, 해당 취약점을 악용하여 악성 스크립트를 실행시키는 방법
- CSP 헤더를 무시하도록 브라우저를 조작하여 악성 스크립트를 실행시키는 방법
## 실습
DVWA의 CSP Bypass항목을 선택하면 아래와 같은 이미지가 보인다.
외부의 컨텐츠를 불러올 수 있는 사이트가 있다. 소스 코드를 확인해보면 다음과 같다.
소스 코드를 확인해보면 5개의 주소(pastebin, hastebin, toptal, example, code.jquery, ssl.google-analytics)와 로컬호스트가 허용되고 있다는 것을 알 수 있다.
x-content-type-options: nosniff
pastebin으로 공격을 수행하려고 했으나 pastebin이 위와 같은 헤더를 추가함으로써 XSS 공격을 차단했기때문에 로컬호스트를 활용하여 공격을 수행해보겠다.
먼저 XSS 코드를 포함한 js파일 하나를 만들겠다.
이어서 파이썬을 활용하여 js파일이 위치한 경로에서 웹서버를 하나 띄우겠다.
마지막으로 csp.js파일이 존재하는 웹서버 상의 경로를 통해 CSP Bypass 공격을 수행해보겠다.
다음과 같이 XSS 공격이 성공적으로 수행된 것을 확인할 수 있다.
'Wargame > DVWA' 카테고리의 다른 글
DVWA (CSRF) (0) | 2023.03.18 |
---|---|
DVWA (XSS) (0) | 2023.03.17 |
DVWA (Blind SQL Injection) (0) | 2023.03.16 |
DVWA (SQL Injection) (0) | 2023.03.15 |
DVWA (Insecure CAPTCHA) (0) | 2023.03.14 |