Encontré este sitio web que habla sobre cómo corregir una vulnerabilidad de Redis al explotando esa misma vulnerabilidad.
El sitio web en cuestión tiene un botón "parcharme" y, si tiene un servidor Redis sin contraseña en ejecución en su máquina, lo parchará.
En otras palabras, el sitio web mismo se conecta al servidor Redis en su computadora y ejecuta algunos comandos.
Si observa el código del sitio web que encuentra, como era de esperar:
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);
Para mi sorpresa, ¡esto funciona!
Pensé que la Política de dominios cruzados impediría que esto se ejecutara, pero no lo hace.
¿Por qué funciona esto y cómo no puedo ser tan paranoico que todos los sitios web en los que entro están leyendo todo el contenido de mi servidor Redis?
¿Es porque solo se escribe pero no se lee? Sin embargo, cualquier sitio web del mundo podría vaciar mi servidor Redis local / escribir en cualquier otra cosa escuchando un puerto en mi máquina sin autenticación.
¿Me estoy perdiendo algo aquí?