SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
GSI-CR     XSS

 TECNICA XSS
       
Cross-site scripting
XSS, del inglés Cross-site scripting es un tipo
de inseguridad informática o agujero de
seguridad típico de las aplicaciones Web, que
permite a una tercera parte inyectar código
JavaScript en páginas web vistas por el
usuario, evitando medidas de control como la
Política del mismo origen.
 
 
DONDE SE ENCUENTRA ESTOS
ERRORES?
Estos errores se pueden encontrar en cualquier aplicación
que tenga como objetivo final, el presentar la información
en un navegador web. No se limita a sitios web, ya que
puede haber aplicaciones locales vulnerables a XSS, o
incluso el navegador en sí. El problema está en que
usualmente no se validan correctamente los datos de
entrada que son usados en cierta aplicación. Esta
vulnerabilidad puede estar presente de forma directa
(también llamada persistente) o indirecta (también
llamada reflejada).
TIPOS DE XSS
Directa (Persistente): este tipo de XSS comúnmente
filtrado, y consiste en embeber código HTML peligroso en
sitios que lo permitan; incluyendo así etiquetas como
<script> o <iframe>.
Indirecta (Reflejada): este tipo de XSS consiste en
modificar valores que la aplicación web utiliza para pasar
variables entre dos páginas, sin usar sesiones y sucede
cuando hay un mensaje o una ruta en la URL del
navegador, en una cookie, o cualquier otra cabecera HTTP
(en algunos navegadores y aplicaciones web, esto podría
extenderse al DOM del navegador).
 
 
XSS Indirecto (reflejado)
Supongamos que un sitio web tiene la siguiente forma:
http://www.example.com/home.asp?frame=menu.asp
y que al acceder se creará un documento HTML enlazando con un frame a menu.asp.
 
En este ejemplo, ¿qué pasaría si se pone como URL del frame un código javascript?
  javascript:while(1)alert("Este mensaje saldra indefinidamente");
 
Si este enlace lo pone un atacante hacia una víctima, un visitante podrá verlo y verá que es del
mismo dominio, suponiendo que no puede ser nada malo y de resultado tendrá un bucle infinito de
mensajes.
Un atacante en realidad trataría de colocar un script que robe las cookies de la víctima, para
después poder personificarse como con su sesión, o hacer automático el proceso con el uso de la
biblioteca cURL o alguna similar. De esta forma, al recibir la cookie, el atacante podría ejecutar
acciones con los permisos de la víctima sin siquiera necesitar tu contraseña.
Otro uso común para estas vulnerabilidades es lograr hacer phishing. Quiere ello decir que la
víctima ve en la barra de direcciones un sitio, pero realmente está en otra. La víctima introduce su
contraseña y se la envía al atacante.
XSS Indirecto (reflejado)
 
Una página como la siguiente:
  error.php?error=Usuario%20Invalido
es probablemente vulnerable a XSS indirecto, ya que si escribe en el documento "Usuario Inválido",
esto significa que un atacante podría insertar HTML y JavaScript si así lo desea.
 
Por ejemplo, un tag como <script> que ejecute código javascript, cree otra sesión bajo otro usuario
y mande la sesión actual al atacante.
 
Para probar vulnerabilidades de XSS en cookies, se puede modificar el contenido de una cookie de
forma sencilla, usando el siguiente script. Sólo se debe colocar en la barra de direcciones, y
presionar 'Enter'.
 
javascript:void prompt("Introduce la cookie:",document.cookie).replace(/[^;]+/g,function(_)
{document.cookie=_;});
 
 


 
XSS Directo (persistente)
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.).
 
Normalmente el atacante tratara de insertar tags como <iframe>, o <script>,
pero en caso de fallar, el atacante puede tratar de poner tags que casi
siempre están permitidas y es poco conocida su capacidad de ejecutar
código. De esta forma el atacante podría ejecutar código malicioso.
 
XSS Directo (persistente)
Ejemplos:
 
Una posibilidad es usar atributos que permiten ejecutar código.
 
<BR SIZE="&{alert('XSS')}">
<FK STYLE="behavior: url(http://yoursite/xss.htc);">
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
 
También se puede crear un DIV con background-image: url(javascript:eval
(this.fu)) como estilo y añadir al DIV un campo llamado fu que contenga el
código a ejecutar, por ejemplo:
 
<div fu="alert('Hola mundo');" STYLE="background-image: url(javascript:eval
(this.fu))">
 
 

Más contenido relacionado

La actualidad más candente

La actualidad más candente (9)

Client side attacks in web applications
Client side attacks in web applicationsClient side attacks in web applications
Client side attacks in web applications
 
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
[Flisol2011] Seguridad en el Desarrollo de Aplicaciones Web PHP
 
Xss attacks
Xss attacksXss attacks
Xss attacks
 
Mod2ud1 1
Mod2ud1 1Mod2ud1 1
Mod2ud1 1
 
Goncha
GonchaGoncha
Goncha
 
Seguridad en php
Seguridad en phpSeguridad en php
Seguridad en php
 
Seguridad web, ataque y defensa
Seguridad web, ataque y defensaSeguridad web, ataque y defensa
Seguridad web, ataque y defensa
 
Pract 5
Pract 5Pract 5
Pract 5
 
Phishing
PhishingPhishing
Phishing
 

Similar a Que es xss

XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)kernelinux
 
Ataques a aplicaciones web
Ataques a aplicaciones webAtaques a aplicaciones web
Ataques a aplicaciones webAlan Resendiz
 
Exponiendo la verdad - C1b3rwall.pptx
Exponiendo la verdad - C1b3rwall.pptxExponiendo la verdad - C1b3rwall.pptx
Exponiendo la verdad - C1b3rwall.pptxDavidPadillaAlvarado
 
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"Alonso Caballero
 
Prevencion ante ataques XSS - Betabeers Córdoba (29/11/2012)
Prevencion ante ataques XSS - Betabeers Córdoba (29/11/2012)Prevencion ante ataques XSS - Betabeers Córdoba (29/11/2012)
Prevencion ante ataques XSS - Betabeers Córdoba (29/11/2012)betabeers
 
Vulnerabilidades del Software
Vulnerabilidades del SoftwareVulnerabilidades del Software
Vulnerabilidades del Softwarelechosopowers
 
Xss completo
Xss completoXss completo
Xss completonoc_313
 
Webinar Gratuito: Cross-Site Scripting (XSS)
Webinar Gratuito: Cross-Site Scripting (XSS)Webinar Gratuito: Cross-Site Scripting (XSS)
Webinar Gratuito: Cross-Site Scripting (XSS)Alonso Caballero
 
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3tantascosasquenose
 
Samurai Web Testing Framework 2.0
Samurai Web Testing Framework 2.0Samurai Web Testing Framework 2.0
Samurai Web Testing Framework 2.0Alonso Caballero
 
Análisis de la vulnerabilidad en las paginas web
 Análisis de la vulnerabilidad en las paginas web Análisis de la vulnerabilidad en las paginas web
Análisis de la vulnerabilidad en las paginas webKevin Casaverde Roncal
 
Seguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_securitySeguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_securityseguridadelinux
 
Seguridad en aplicaciones web
Seguridad en aplicaciones webSeguridad en aplicaciones web
Seguridad en aplicaciones webJose Mato
 
Curso basicoseguridadweb slideshare8
Curso basicoseguridadweb slideshare8Curso basicoseguridadweb slideshare8
Curso basicoseguridadweb slideshare8tantascosasquenose
 
Vulnerabilidades en Aplicaciones Web
Vulnerabilidades en Aplicaciones WebVulnerabilidades en Aplicaciones Web
Vulnerabilidades en Aplicaciones WebAlonso Caballero
 

Similar a Que es xss (20)

XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)
XSS to the MAX - Juan Manuel Garcia (OWASP LATAM TOUR 2016)
 
Ataques a aplicaciones web
Ataques a aplicaciones webAtaques a aplicaciones web
Ataques a aplicaciones web
 
Vulnerabilidades web
Vulnerabilidades webVulnerabilidades web
Vulnerabilidades web
 
Exponiendo la verdad - C1b3rwall.pptx
Exponiendo la verdad - C1b3rwall.pptxExponiendo la verdad - C1b3rwall.pptx
Exponiendo la verdad - C1b3rwall.pptx
 
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
Webinar Gratuito "Vulnerabilidades en Aplicaciones Web"
 
Prevencion ante ataques XSS - Betabeers Córdoba (29/11/2012)
Prevencion ante ataques XSS - Betabeers Córdoba (29/11/2012)Prevencion ante ataques XSS - Betabeers Córdoba (29/11/2012)
Prevencion ante ataques XSS - Betabeers Córdoba (29/11/2012)
 
Vulnerabilidades del Software
Vulnerabilidades del SoftwareVulnerabilidades del Software
Vulnerabilidades del Software
 
Xss completo
Xss completoXss completo
Xss completo
 
Webinar Gratuito: Cross-Site Scripting (XSS)
Webinar Gratuito: Cross-Site Scripting (XSS)Webinar Gratuito: Cross-Site Scripting (XSS)
Webinar Gratuito: Cross-Site Scripting (XSS)
 
Completo conferencia seguridad_web_software_libre_2015
Completo conferencia seguridad_web_software_libre_2015Completo conferencia seguridad_web_software_libre_2015
Completo conferencia seguridad_web_software_libre_2015
 
Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3Curso basicoseguridadweb slideshare3
Curso basicoseguridadweb slideshare3
 
Samurai Web Testing Framework 2.0
Samurai Web Testing Framework 2.0Samurai Web Testing Framework 2.0
Samurai Web Testing Framework 2.0
 
haker Spoofing
haker Spoofinghaker Spoofing
haker Spoofing
 
Análisis de la vulnerabilidad en las paginas web
 Análisis de la vulnerabilidad en las paginas web Análisis de la vulnerabilidad en las paginas web
Análisis de la vulnerabilidad en las paginas web
 
Seguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_securitySeguridad en servidores WEB. Modulo mod_security
Seguridad en servidores WEB. Modulo mod_security
 
Web app attacks
Web app attacksWeb app attacks
Web app attacks
 
Seguridad en aplicaciones web
Seguridad en aplicaciones webSeguridad en aplicaciones web
Seguridad en aplicaciones web
 
Curso basicoseguridadweb slideshare8
Curso basicoseguridadweb slideshare8Curso basicoseguridadweb slideshare8
Curso basicoseguridadweb slideshare8
 
Vulnerabilidades en Aplicaciones Web
Vulnerabilidades en Aplicaciones WebVulnerabilidades en Aplicaciones Web
Vulnerabilidades en Aplicaciones Web
 
Inyecciones SQL
Inyecciones SQLInyecciones SQL
Inyecciones SQL
 

Más de James Jara

Unlimited marine clean energy
Unlimited  marine clean energyUnlimited  marine clean energy
Unlimited marine clean energyJames Jara
 
James Jara Portfolio 2014 - InfoSec White Paper- Part 5
James Jara Portfolio 2014 - InfoSec White Paper- Part 5James Jara Portfolio 2014 - InfoSec White Paper- Part 5
James Jara Portfolio 2014 - InfoSec White Paper- Part 5James Jara
 
James Jara Portfolio 2014 - Enterprise datagrid - Part 3
James Jara Portfolio 2014  - Enterprise datagrid - Part 3James Jara Portfolio 2014  - Enterprise datagrid - Part 3
James Jara Portfolio 2014 - Enterprise datagrid - Part 3James Jara
 
James Jara Portfolio 2014 - Cloud Operating System Voip -Part 2
James Jara Portfolio 2014  - Cloud Operating System Voip -Part 2James Jara Portfolio 2014  - Cloud Operating System Voip -Part 2
James Jara Portfolio 2014 - Cloud Operating System Voip -Part 2James Jara
 
James Jara Portfolio 2014 Part 1
James Jara Portfolio 2014 Part 1James Jara Portfolio 2014 Part 1
James Jara Portfolio 2014 Part 1James Jara
 
Ver rmbv en_linux_centos
Ver rmbv en_linux_centosVer rmbv en_linux_centos
Ver rmbv en_linux_centosJames Jara
 
Ver logs de_apache_en_linux
Ver logs de_apache_en_linuxVer logs de_apache_en_linux
Ver logs de_apache_en_linuxJames Jara
 
Unzip un archivo
Unzip un archivoUnzip un archivo
Unzip un archivoJames Jara
 
Ultima linea ejecutada_en_terminal_linux
Ultima linea ejecutada_en_terminal_linuxUltima linea ejecutada_en_terminal_linux
Ultima linea ejecutada_en_terminal_linuxJames Jara
 
Tar file linux
Tar file linuxTar file linux
Tar file linuxJames Jara
 
Which configuration file_is_used_by_your_php
Which configuration file_is_used_by_your_phpWhich configuration file_is_used_by_your_php
Which configuration file_is_used_by_your_phpJames Jara
 
Which configuration file is used by your php
Which configuration file is used by your phpWhich configuration file is used by your php
Which configuration file is used by your phpJames Jara
 
Ver rmbv en_linux_centos
Ver rmbv en_linux_centosVer rmbv en_linux_centos
Ver rmbv en_linux_centosJames Jara
 
Ver logs de_apache_en_linux
Ver logs de_apache_en_linuxVer logs de_apache_en_linux
Ver logs de_apache_en_linuxJames Jara
 
Ultima linea ejecutada_en_terminal_linux
Ultima linea ejecutada_en_terminal_linuxUltima linea ejecutada_en_terminal_linux
Ultima linea ejecutada_en_terminal_linuxJames Jara
 
Permisos archivo chmod linux
Permisos archivo chmod linuxPermisos archivo chmod linux
Permisos archivo chmod linuxJames Jara
 
Matar un proceso_linux__kill_linux_process
Matar un proceso_linux__kill_linux_processMatar un proceso_linux__kill_linux_process
Matar un proceso_linux__kill_linux_processJames Jara
 
Listar servicios conectado_a_la_red
Listar servicios conectado_a_la_redListar servicios conectado_a_la_red
Listar servicios conectado_a_la_redJames Jara
 

Más de James Jara (20)

Unlimited marine clean energy
Unlimited  marine clean energyUnlimited  marine clean energy
Unlimited marine clean energy
 
Hack.lu 2016
Hack.lu 2016   Hack.lu 2016
Hack.lu 2016
 
James Jara Portfolio 2014 - InfoSec White Paper- Part 5
James Jara Portfolio 2014 - InfoSec White Paper- Part 5James Jara Portfolio 2014 - InfoSec White Paper- Part 5
James Jara Portfolio 2014 - InfoSec White Paper- Part 5
 
James Jara Portfolio 2014 - Enterprise datagrid - Part 3
James Jara Portfolio 2014  - Enterprise datagrid - Part 3James Jara Portfolio 2014  - Enterprise datagrid - Part 3
James Jara Portfolio 2014 - Enterprise datagrid - Part 3
 
James Jara Portfolio 2014 - Cloud Operating System Voip -Part 2
James Jara Portfolio 2014  - Cloud Operating System Voip -Part 2James Jara Portfolio 2014  - Cloud Operating System Voip -Part 2
James Jara Portfolio 2014 - Cloud Operating System Voip -Part 2
 
James Jara Portfolio 2014 Part 1
James Jara Portfolio 2014 Part 1James Jara Portfolio 2014 Part 1
James Jara Portfolio 2014 Part 1
 
Portafolio
PortafolioPortafolio
Portafolio
 
Ver rmbv en_linux_centos
Ver rmbv en_linux_centosVer rmbv en_linux_centos
Ver rmbv en_linux_centos
 
Ver logs de_apache_en_linux
Ver logs de_apache_en_linuxVer logs de_apache_en_linux
Ver logs de_apache_en_linux
 
Unzip un archivo
Unzip un archivoUnzip un archivo
Unzip un archivo
 
Ultima linea ejecutada_en_terminal_linux
Ultima linea ejecutada_en_terminal_linuxUltima linea ejecutada_en_terminal_linux
Ultima linea ejecutada_en_terminal_linux
 
Tar file linux
Tar file linuxTar file linux
Tar file linux
 
Which configuration file_is_used_by_your_php
Which configuration file_is_used_by_your_phpWhich configuration file_is_used_by_your_php
Which configuration file_is_used_by_your_php
 
Which configuration file is used by your php
Which configuration file is used by your phpWhich configuration file is used by your php
Which configuration file is used by your php
 
Ver rmbv en_linux_centos
Ver rmbv en_linux_centosVer rmbv en_linux_centos
Ver rmbv en_linux_centos
 
Ver logs de_apache_en_linux
Ver logs de_apache_en_linuxVer logs de_apache_en_linux
Ver logs de_apache_en_linux
 
Ultima linea ejecutada_en_terminal_linux
Ultima linea ejecutada_en_terminal_linuxUltima linea ejecutada_en_terminal_linux
Ultima linea ejecutada_en_terminal_linux
 
Permisos archivo chmod linux
Permisos archivo chmod linuxPermisos archivo chmod linux
Permisos archivo chmod linux
 
Matar un proceso_linux__kill_linux_process
Matar un proceso_linux__kill_linux_processMatar un proceso_linux__kill_linux_process
Matar un proceso_linux__kill_linux_process
 
Listar servicios conectado_a_la_red
Listar servicios conectado_a_la_redListar servicios conectado_a_la_red
Listar servicios conectado_a_la_red
 

Que es xss

  • 1. GSI-CR XSS TECNICA XSS  
  • 2. Cross-site scripting XSS, del inglés Cross-site scripting es un tipo de inseguridad informática o agujero de seguridad típico de las aplicaciones Web, que permite a una tercera parte inyectar código JavaScript en páginas web vistas por el usuario, evitando medidas de control como la Política del mismo origen.    
  • 3. DONDE SE ENCUENTRA ESTOS ERRORES? Estos errores se pueden encontrar en cualquier aplicación que tenga como objetivo final, el presentar la información en un navegador web. No se limita a sitios web, ya que puede haber aplicaciones locales vulnerables a XSS, o incluso el navegador en sí. El problema está en que usualmente no se validan correctamente los datos de entrada que son usados en cierta aplicación. Esta vulnerabilidad puede estar presente de forma directa (también llamada persistente) o indirecta (también llamada reflejada).
  • 4. TIPOS DE XSS Directa (Persistente): este tipo de XSS comúnmente filtrado, y consiste en embeber código HTML peligroso en sitios que lo permitan; incluyendo así etiquetas como <script> o <iframe>. Indirecta (Reflejada): este tipo de XSS consiste en modificar valores que la aplicación web utiliza para pasar variables entre dos páginas, sin usar sesiones y sucede cuando hay un mensaje o una ruta en la URL del navegador, en una cookie, o cualquier otra cabecera HTTP (en algunos navegadores y aplicaciones web, esto podría extenderse al DOM del navegador).    
  • 5. XSS Indirecto (reflejado) Supongamos que un sitio web tiene la siguiente forma: http://www.example.com/home.asp?frame=menu.asp y que al acceder se creará un documento HTML enlazando con un frame a menu.asp.   En este ejemplo, ¿qué pasaría si se pone como URL del frame un código javascript? javascript:while(1)alert("Este mensaje saldra indefinidamente");   Si este enlace lo pone un atacante hacia una víctima, un visitante podrá verlo y verá que es del mismo dominio, suponiendo que no puede ser nada malo y de resultado tendrá un bucle infinito de mensajes. Un atacante en realidad trataría de colocar un script que robe las cookies de la víctima, para después poder personificarse como con su sesión, o hacer automático el proceso con el uso de la biblioteca cURL o alguna similar. De esta forma, al recibir la cookie, el atacante podría ejecutar acciones con los permisos de la víctima sin siquiera necesitar tu contraseña. Otro uso común para estas vulnerabilidades es lograr hacer phishing. Quiere ello decir que la víctima ve en la barra de direcciones un sitio, pero realmente está en otra. La víctima introduce su contraseña y se la envía al atacante.
  • 6. XSS Indirecto (reflejado)   Una página como la siguiente: error.php?error=Usuario%20Invalido es probablemente vulnerable a XSS indirecto, ya que si escribe en el documento "Usuario Inválido", esto significa que un atacante podría insertar HTML y JavaScript si así lo desea.   Por ejemplo, un tag como <script> que ejecute código javascript, cree otra sesión bajo otro usuario y mande la sesión actual al atacante.   Para probar vulnerabilidades de XSS en cookies, se puede modificar el contenido de una cookie de forma sencilla, usando el siguiente script. Sólo se debe colocar en la barra de direcciones, y presionar 'Enter'.   javascript:void prompt("Introduce la cookie:",document.cookie).replace(/[^;]+/g,function(_) {document.cookie=_;});      
  • 7. XSS Directo (persistente) 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.).   Normalmente el atacante tratara de insertar tags como <iframe>, o <script>, pero en caso de fallar, el atacante puede tratar de poner tags que casi siempre están permitidas y es poco conocida su capacidad de ejecutar código. De esta forma el atacante podría ejecutar código malicioso.  
  • 8. XSS Directo (persistente) Ejemplos:   Una posibilidad es usar atributos que permiten ejecutar código.   <BR SIZE="&{alert('XSS')}"> <FK STYLE="behavior: url(http://yoursite/xss.htc);"> <DIV STYLE="background-image: url(javascript:alert('XSS'))">   También se puede crear un DIV con background-image: url(javascript:eval (this.fu)) como estilo y añadir al DIV un campo llamado fu que contenga el código a ejecutar, por ejemplo:   <div fu="alert('Hola mundo');" STYLE="background-image: url(javascript:eval (this.fu))">