Ottenere una casella di avviso in JS senza usare alert ()

2

Questa è una vulnerabilità XSS che ho trovato in un sito di pratica. Quindi, ho bisogno di creare un popup alert() , ma alert() è cambiato in prompt() da un altro script caricato prima di dare qualsiasi input. (Quindi non posso liberarmi di quella sceneggiatura) Quindi, come posso creare un popup alert() ?

Le strisce di codice < , > e + (ho trovato solo queste tre) ma cambiare il mio carico utile e iniettarle non sembra aiutare.

Ho provato window\["alert"](1) che viene anche rilevato. Così sono window["al"+"ert"] e window["al".concat("ert")] .

Penso di aver bisogno di trovare un'altra soluzione invece di alert (), ma non ho idea di dove procedere da qui.

    
posta user2505282 01.06.2018 - 08:22
fonte

1 risposta

2

Prova con una nuova copia di window :

document
.body
.appendChild(document.createElement("iframe"))
.contentWindow
.alert("XSS");

puoi pulire / nascondere l'iframe secondo necessità, non deve navigare, deve solo esistere per esporre i suoi metodi globali window . Pensalo come un web worker con più built-in. Nota che anche se chrome46 + blocca avvisi da iframe, non lo chiami da iframe tecnicamente, quindi è permesso. Questo è anche un modo decente per evitare ri-scritture / fork per eseguire un processo in conflitto con il codice preesistente che non ha bisogno del contenuto del documento per funzionare, ma ha bisogno di strumenti DOM che Worker non fornisce, come% % co_de.

    
risposta data 01.06.2018 - 10:25
fonte

Leggi altre domande sui tag