English

Slide one

A reflected XSS is a vulnerability that allows an attacker to inject malicious JavaScript code into a victims browser via an input point to the server, such as the directory, GET parameters, POST parameters... etc. This means that if we are exploiting a GET parameter, we can use the following payload (if there are no Content Security Policies and Web Application Firewalls): https://vulnerable.url/?message=, the javascript injected into the message parameter would be executed.
This happens because browsers, which are able to execute languages such as JavaScript, process whatever the server sends back to them, so if the server responds with unsanitized input, then the browser will parse it as code.

Slide two

This vulnerability could be exploited to inject malicious JavaScript code in the victims browser, allowing an attacker to steal session cookies, to modify the page's contents / inject some sort of advertisement that may be beneficial to the attacker (the latter is less common) amongst other things.

This vulnerability was included on the OWASP Top 10 Web Vulnerabilities list, due to it's simple exploitability and also because of how common it is to find in the wild.

Slide three

An example of a payload that would steal a victims cookies is the following:

When this code is executed, it will make the browser redirect to "malicious.url", where the session cookies stored for that domain in the victims browser will be appended to the end of the URL.
The attacker, can then check the websites access log, and see the cookies at the end of the URL, which can then be added to their browser to access whatever active sessions you had.

Spanish

SLIDE 1
Un XSS reflejado es una vulnerabilidad que permite a un atacante, mediante una entrada de datos como la URL o los datos en POST de una solicitud web cuyos datos serán reflejados sobre la página que verá el cliente, ejecutar código no deseado.
Esto quiere decir, en el caso de la URL, que por ejemplo, si un usuario abre la URL https://vulnerable.url?entrada= (teniendo en cuenta que la página de Google fuera vulnerable a esta vulnerabilidad, que no lo es), el código Javascript introducido en entrada, será ejecutado.
Esto ocurre porque los navegadores, capaces de ejecutar lenguajes como Javascript, procesan todo lo que devuelve del servidor. Al inyectar los datos mediante XSS, el navegador interpretará estos datos de la misma manera.

SLIDE 2
Esta vulnerabilidad podría ser explotada para inyectar código malicioso Javascript en la víctima, permitiendo ataques de robo de cookies (permitiendo al atacante iniciar sesión en la cuenta de la víctima), desfigurar la página por completo o inyectar anuncios en la propia página entre otras muchas posibilidades.
Esta vulnerabilidad ha sido incluida en la lista OWASP Top 10 Vulnerabilidades Web, ya que es una vulnerabilidad muy sencilla a la vez que común en la vida real.

SLIDE 3
Un ejemplo de código que robaría cookies con XSS sería:

Ejecutar este código, provocará que nuestro navegador se redirija a este enlace, en el que “document.cookie” sería lo que se conoce como cookies del navegador de la víctima.
El atacante, al mirar el registro de solicitudes en su servidor, podrá ver en texto plano estas cookies, con las que podría hacer el ataque de robo de sesión mencionado anteriormente

tags: @hacking