當前位置:偏方大全网 - 藥品查詢 - CSP策略和旁路方法

CSP策略和旁路方法

使用XSS時,CSP經常被繞過,這裏總結了壹下。

CSP標頭由多組CSP策略組成,用分號分隔,如下所示:

其中每個組策略包含壹個策略指令和壹個內容源列表。

default-src指令定義了更精確的指令沒有指定的安全策略。這些說明包括:

Script-src定義了頁面中Javascript的有效來源。

Style-src定義了頁面中CSS樣式的有效來源。

Img-src定義了頁面中圖片和圖標的有效來源。

定義了壹個有效的字體加載源。

Connect-src定義了請求的連接源,XMLHttpRequest、WebSocket和EventSource。

Child-src指定web workers和嵌套瀏覽上下文(例如

內容來源有三種:來源列表、關鍵詞和數據。

源列表是指定壹個或多個Internet主機(通過主機名或IP地址)以及可選的或端口號的字符串。站點地址可以包含可選的通配符前綴(星號,' * '),端口號也可以使用通配符(也是' * ')來表示所有合法端口都是有效的源。主機由空格分隔。

有效的主機表達式包括:

(匹配所有使用任何子域的嘗試。)

Mail.foo.com:443(匹配所有訪問mail.foo.com 443端口的嘗試。)

(匹配所有使用嘗試。)

如果未指定端口號,瀏覽器將使用指定協議的默認端口號。如果未指定協議,瀏覽器將在訪問文檔時使用該協議。

CSP的設置可能太多了,這裏只列舉幾種典型情況。

在default-src 'none '的情況下,可以使用meta標簽來實現跳轉。

如果允許unsafe-inline,可以使用window.location或window.open這樣的方法來跳轉。

CSP沒有充分考慮鏈接標簽的預加載功能。

在Chrome下,可以使用以下標簽發送cookie(最新版本的Chrome會禁止)。

在Firefox下,可以把cookies作為子域,通過dns預解析取出cookies,查看dns服務器的日誌來獲取cookies。

壹些網站只限制使用某些腳本,並且經常使用

那麽當腳本插入點如下時

可以插入

這將拼寫壹個新的腳本標簽,其中src可以自由設置。

Blackhat2017上有壹個ppt,總結了壹些可以用來繞過CSP的JS庫。

例如,如果在頁面中使用Jquery-mobile庫,並且CSP策略包含“script-src 'unsafe-eval '”或“script-src 'strict-dynamic '”,則以下向量可以繞過CSP:

除了這個PPT,還有壹些庫也可以用,比如RCTF2018中遇到的amp庫。下面的標簽可以獲得cookie命名的FLAG。

1.如果在頁面A中有CSP限制,而在頁面B中沒有,並且A和B是同源的,那麽可以在頁面A中包含頁面B以繞過CSP:

2.在Chrome下,iframe標簽支持csp屬性,有時可以用來繞過壹些防禦。比如“http://xxx”頁面上有壹個js庫,過濾XSS向量,我們可以用csp屬性禁用這個js庫。

元標簽有壹些不尋常的功能,有時會創造奇跡:

Meta可以控制緩存(當沒有設置頭時),並且有時可以用於繞過CSP nonce。

Meta可以設置cookies(在Firefox下),可以和self-xss結合使用。

  • 上一篇:如何正確處理腳踝扭傷?生活中如何預防腳踝扭傷?
  • 下一篇:唐山18餐飲企業提供團餐服務(唐山團餐公司)
  • copyright 2024偏方大全网