AddThis Smart Layers

miércoles, 23 de abril de 2014

Bypassing básico de filtros XSS IV





El otro día cotilleando los últimos tweets de Rober, vi que había empezado a publicar algún artículo sobre filtros básicos de XSS muy interesantes, y me invitó escribir una entrada sobre XSS, así que aquí está mi granito de arena.

Vamos con la cuarta entrega de los filtros básicos de XSS. 


En PHP existente algunas funciones que podemos utilizar para prevenir en cierta medida los ataques XSS.

En general muchas webs suele recomendar la función htmlentities, cuya salida es la conversión de los caracteres de entrada en entidades HTML. Esta función no es la panacea de todos los ataques XSS, simplemente es un pequeño filtro muy básico.


Por defecto la función tiene activado la flag ENT_COMPAT la cual convertirá las comillas dobles y solo deja las comillas sencillas. Tal vez este pequeño filtro sea un problema para mucha gente pero sigue siendo vulnerable.


Supongamos que tenemos el siguiente código.

    1.  <?php echo "<img alt='Perfil' src='".htmlentities($_GET["img"])."' />"; ?>


Como ya sabemos no podemos utilizar comillas dobles, pero sí comillas simples así que vamos a evadir el filtro aprovechándonos de ellas.


www.webvulnerable.com/miperfil?img= .'onerror='alert(1)


El resultado es la ejecución del alert(1) sin problemas.


  1. <img alt=’Perfil’ src=’.’ onerror=’alert(1)’/>

 
Primero introducimos el punto para forzar un error en el parámetro src que recibe la ruta de la imagen, luego utilizamos el evento de javascript onerror (se ejecuta cuando hay un error en la ruta de la imagen) para lanzar nuestro alert(1) sin problemas.


Finalmente para evitar estos problemas debemos utilizar htmlentities pero con la flag ENT_QUOTES que convertirá tanto las comillas dobles como las simples. 

  1. <?php echo "<img alt='Perfil' src='".htmlentities($_GET["img"], ENT_QUOTES)."' />"; ?>


Recordar siempre filtrar los datos de entrada del usuario y de salida, tanto en el lado del cliente como en el lado del servidor.


Por si queréis más información aquí os dejo un whitepaper con 16 ejercicios resultos y explicados sobre filtros XSS que publiqué junto con Pepe Vila (@cgvwzq) “Alert(1) to Win!”


Espero que os haya servido de ayuda la entrada y recordar que esto es con fines educativos, no para andar tirando scripts por ahí a lo loco.


Un saludo,
Daniel (@DaniLabs)


Vuelve por una red mas segura




Las Jornadas X1REDMASSEGURA nacieron en 2013 con el propósito de promover a través de un foro el uso de Internet de una manera confiable y segura. Su objetivo es hacer llegar a todos los públicos, independientemente de sus conocimientos técnicos en informática, el uso adecuado y responsable de los recursos disponibles en la red con el fin de evitar ser víctimas de abusos fraudulentos, estafas, acoso, grooming, y tantos otros problemas que cualquier navegante puede sufrir en Internet si no cuenta con unos conocimientos adecuados.

Esta segunda edición del evento también se encuentra coordinada por el colectivo X1RedMasSegura, que desde su nacimiento en 2013 ha ofrecido sus ganas y todo su apoyo por hacer de estas jornadas algo grande, sin ningún ánimo de lucro. 

martes, 22 de abril de 2014

¿Conoces Gr2Dest?




Hoy vengo a hablaros de un grupo joven (aún no llegan al año de vida) de seguridad y hacking ético, son gr2dest y tienen una web que es una pasada de chula en la que cuelgan sesiones que van sacando en Hangout y dejan también en su canal de youtube.
He de decir que la primera vez que vi uno de sus vídeos quede bastante impresionado por la currada en la intro (ademas del buen contenido).

Hace unas semanas contactaron conmigo para que diese una charla en una de sus sesiones de Hangout y tras pensármelo entre 4 y 5 segundos, les dije que si. Así que si queréis ver la charla, será el Lunes 28 de Abril a las 20:00h (hora Española).

Os voy a dejar una intro que me han pasado ellos, pero no sin antes dar las gracias públicamente por pensar en mi para dar una charla. Gracias chicos.

lunes, 21 de abril de 2014

Bypassing básico de filtros XSS III




Ya hemos visto una primera parte y una segunda parte en esto del bypass básico XSS en aplicaciones web. 
Habíamos visto como modificar el valor maxlength para ampliarlo en las webs que no podíamos poner mas de X caracteres y así saltarnos ese filtrado. 
También vimos como jugando con mayúsculas y minúsculas podíamos evadir otro tipo de filtros. Bien, pues vamos a ir mas allá.

Supongamos que tenemos (en nuestro laboratorio) una web en la que mediante filtros no nos deja emplear la palabra script, ni tampoco los caracteres " "(comillas dobles),' ' (comillas simples) < > (mayor y menor qué). En principio pensareis que estamos bien jo... fastidiados ya que si no podemos llegar a escribir el típico <SCRIPT>alert(“XSS”);</SCRIPT>, que precisamente contiene todo lo que mediante filtros nos están quitando, no podemos hacer nada.

Creative Commons Licence
1Gb De informacion by Roberto García Amoriz is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.
Based on a work at http://www.1gbdeinformacion.com/.
Permissions beyond the scope of this license may be available at http://www.1gbdeinformacion.com/.