Software">
04-Clase 04 Xss Rfi Lfi
04-Clase 04 Xss Rfi Lfi
04-Clase 04 Xss Rfi Lfi
Permite inyectar código JavaScript u otro lenguaje similar del lado del cliente
en una web tal que cuando la vícAma ingrese a la página o al enlace que
conAene el código inyectado, éste se ejecute.
Explota la confianza que el usuario Aene en el siAo web.
Con la llegada de Web 2.0 y tecnologías como AJAX, XSS es más diJcil de
detectar.
Cross-site Scripting (XSS) - Tipos
• Reflejado – indirecto
• Almacenado persistente
Cross-site Scripting (XSS) - Reflejado (indirecto)
• El código inyectado se ejecuta de manera transitoria o no persistente, no se
almacena en el servidor.
• El código generalmente se inyecta en los parámetros de un enlace; cuando la
víctima hace click en el enlace que contiene la inyección, ésta se ejecuta y se
refleja en su navegador
• Impacto medio
Inyección:
name → <script>alert('attacked')</script>
<html> ...
Welcome
<script>alert('attacked')</script><br>
Cross-Site Scripting (XSS) - Almacenado (persistente)
ü El código inyectado se almacena en el servidor (generalmente en la base de datos)
y cuando el usuario visita la web donde está alojado, éste se recupera y ejecuta.
ü Se le denomina persistente, ya que las acciones derivadas de la ejecución del
código malicioso son persistentes en el servidor.
ü Impacto alto, funciona localizando puntos débiles en la programación de los filtros
de HTML si es que existen, para publicar contenido (como blogs, foros, etc.).
Inyección:
Que produce?
El código dado carga una cookie para el dominio, en el que se encuentra la página
web atacada,
La cookie se envía a un servidor (bz.com) a menudo bajo el control del atacante,
Si la cookie se usa para la autenticación, el atacante puede intentar hacerse pasar
por el usuario y no necesita saber su contraseña.
Programación Segura
Caso real
Samy (también conocido como JS.Spacehero) es un gusano XSS que fue
diseñado para propagarse a través de la red social MySpace escrito por Samy
Kamkar. Apenas 20 horas después de su lanzamiento el 4 de octubre de 2005,
más de un millón de usuarios habían ejecutado la carga útil, lo que convirtió a
Samy en el virus de propagación más rápida de todos los tiempos.
El gusano en sí era relativamente inofensivo, llevaba una carga útil que
mostraba la cadena "pero, sobre todo, Samy es mi héroe" en la página de
perfil de MySpace de la víctima. Cuando un usuario veía esa página de perfil,
la carga útil se replicaba y se plantaba en su propia página de perfil
continuando la distribución del gusano.
DEMO – DVWA I
http://localhost/vulnerabilities/xss_s/
Low Level
• Simple alert
• Usar iframe
• Re-dirigir
• Ver los cookies
Medium Level
• Simple Alert
Riesgos de un ataque XSS
• Leer las cookies (que no están protegidas por el tag HttpOnly), incluidas las
cookies de sesión. Al hacerlo, un atacante podría hacerse cargo de la sesión.
¿Cómo prevenirlo?
• Limitar los caracteres de entrada.
• Limitar los input types en lo posible.
• Sanear los datos.
• Escapar los datos.
• NUNCA confiar en los datos que vienen de usuarios o de
cualquier otra fuente externa.
XSS: Prevenciones II
• Fake Form
• http://localhost/vulnerabilities/csrf/
Path Traversal
• Vulnerabilidad que permite, a través de la inyección de datos manipulados, acceder
a archivos y directorios que están fuera del directorio raíz del servidor web.
• fopen(‘/var/www/files/../../../etc/passwd’);
• fopen(‘/etc/passwd’);
Ejemplo de LFI
DEMO - LFI
• http://localhost/vulnerabilities/fi/?page=include.php
Ejemplo de RFI
Ejecución Remota de Código
Vulnerabilidad permite inyectar y ejecutar comandos que son utilizados por
el lenguaje de programación del lado del servidor (PHP, JSP, ASP, etc.)
eval($_GET['code']);
Inyección:
code → phpinfo();
eval(phpinfo(););
Inyección de Comando
Vulnerabilidad permite inyectar y ejecutar comandos arbitrarios de sistema.
$file=$_GET['filename'];
system("rm $file");
Inyección:
filename → junk.txt; id
• http://localhost/vulnerabilities/exec/#
Ataques y explotación de vulnerabilidades
● Defacement
● Alojamiento de archivos maliciosos:
ü Sitios de phishing
ü Distribución de malware
● Compromiso del servidor:
ü Webshells y backdoors
ü Scripts, malware, rootkits
• DDoS, spam, minería de bitcoins, ...
● Inyección de Exploit kits
ü Inyección de iframe
ü Inyección de Js (externo o local)
● Robo de información sensible
ü Base de datos
ü Sistema de archivos
● Pivoting en la red
Ejemplo de inyección - Exploit Kit
DEMO – Webshell
• weevely - https://github.com/epinna/weevely3
Bibliografía
ü OWASP Top 10, OWASP Foundation. 2017 https://owasp.org/www-pdf-archive/OWASP_Top_10-
2017_%28en%29.pdf.pdf
ü Presentación “OWASP, SQL Injec7on y XSS” – Materia: Seguridad Informá7ca – Carrera Ing.
Informá7ca – Univ. Nacional de Itapua – Mayo 2021 – Ing. Raúl B. Neao
ü haps://stackoverflow.com/ques7ons/5741187/sql-injec7on-that-gets-around-mysql-real-escape-
string
Gracias por su atención J
Preguntas?
Contactos: raulbeni@gmail.com