Content Security Policy (CSP) Bypass

justugi·2024년 6월 20일
0

DVWA

목록 보기
13/16

주의사항 : 이 포스팅은 개인 학습 및 교육적 목적으로 작성되었으며, 제공하는 정보를 악용하여 불법적인 행위를 하는 것은 엄격히 금지되어 있습니다. 타인의 시스템에 대한 접근 권한을 얻기 위해 명시적인 동의를 받아야 하며, 이러한 기술을 사용하여 발생하는 모든 결과에 대한 책임은 사용자에게 있습니다.

0. 초기 화면

  • CSP(콘텐츠 보안 정책)는 XSS 와 데이터 주입 공격을 비롯한 특정 유형의 공격을 탐지하고 완화하는 데 도움이 되는 추가 보안 계층이다.
  • CSP 를 적용하면 허용된 도메인에서 받은 소스 파일에서 로드된 스크립트만 실행하고, HTML 속성을 포함한 인라인 스크립트 및 이벤트 처리 등의 다른 모든 스크립트는 무시한다.

  • Hastebin 은 코드나 일반 텍스트를 다른 사람들과 쉽게 공유할 수 있는 텍스트 저장소 사이트 또는 Pastebin 도구이다.
  • 다른 사람과 공유하고 싶은 내용을 입력하고 저장 후 해당 URL을 다른 사람에게 보내면 다른 사람이 내용을 볼 수 있다.

Pastebin : 텍스트 파일 공유 사이트로, 익명으로 텍스트나 문서를 공유할 수 있으며, 주로 프로그래머들이 코드를 보관하고 공유하는데 사용하며 어떤 내용의 텍스트이든 게시하는데 제한을 두지 않는다.

1. 서비스 실행

  • include 된 js파일을 <script src="$include"><script> 방식으로 자바 스크립트를 실행한다.

2. 코드 분석

$headerCSP = "Content-Security-Policy: script-src 'self' https://pastebin.com hastebin.com www.toptal.com example.com code.jquery.com https://ssl.google-analytics.com https://digi.ninja ;"; 
// allows js from self, pastebin.com, hastebin.com, jquery, digi.ninja, and google analytics.
  • 위 코드는 CSP를 설정하는 PHP 코드로, 위의 출처에서 제공하는 JavaScript 만 웹 페이지에서 실행하도록 허용한다.
  • self 는 현재 웹 페이지와 같은 출처를 뜻한다.

3. 활용

  • 악성 JS 파일을 CSP 에서 허용된 도메인에 업로드하면, 해당 파일을 이용하여 목표 웹 사이트를 공격할 수 있다.

출처
https://developer.mozilla.org/ko/docs/Web/HTTP/CSP
https://ko.wikipedia.org/wiki/Pastebin.com

profile
IT 보안, 관심 있는 것을 공부합니다.

0개의 댓글