Ho trovato questo sito web che parla di come correggere una vulnerabilità di Redis sfruttando la stessa vulnerabilità.
Il sito web in questione ha un pulsante "patch me" e se hai un server Redis senza password in esecuzione sul tuo computer, lo patcherà.
In altre parole, il sito web stesso collega al Redis Server nel tuo computer ed esegue alcuni comandi.
Se osservi il codice del sito web che trovi, prevedibilmente, questo:
var text = "the code to run";
var bad = "EVAL " + JSON.stringify(text) + " 0\r\n";
var x = new XMLHttpRequest();
x.open("POST", "http://localhost:6379");
x.send(bad);
Con mia sorpresa, questo funziona!
Pensavo che la politica dei domini avrebbe impedito che questo funzionasse, ma non è così.
Perché funziona e come posso non essere paranoico sul fatto che ogni sito web in cui mi trovo stia leggendo l'intero contenuto del mio server Redis?
È perché è solo la scrittura, ma non la lettura? Tuttavia, qualsiasi sito web nel mondo potrebbe svuotare il mio server Redis locale / scrivere su qualsiasi altra cosa possa ascoltare una porta nella mia macchina senza autenticazione.
Mi manca qualcosa qui?