Pages

Ads 468x60px

miércoles, 16 de abril de 2014

Bypassing básico de filtros XSS II



Si el otro día empezamos con esto del bypass básico XSS en aplicaciones web (y viendo que ha tenido buena acogida) hoy vamos a seguir con otra técnica de evasión de filtros muy sencilla.

Bien, supongamos que tenemos que insertar el código habitual de siempre:


  1. <script>alert('XSS')</script>

Pero ahora nos encontramos una web (en nuestro laboratorio, por supuesto) que tiene implementado un filtro para el comando script con la función str_replace() de PHP de la siguiente manera:



  1. <?php echo "<p>".str_replace('script', null, $unsafe_string)."</p>";?>


Si pasásemos la misma cadena del primer código (<script>alert('XSS')</script>) sobre la web atacada 

www.webvulnerable.com/server.php?cadena=<script>alert('XSS')</script>

La palabra script sería eliminada por el filtro y el código no se ejecutaría, quedando así:


  1. <p><>alert('XSS')</></p>

Bueno, llegados a este punto, vamos a ver que hacer para evadir ese filtro. ¿Se os ocurre algo? Es muy fácil, solo esta "bloqueando" la palabra "script", pero así, tal cual está escrita, es decir, si yo jugase con el "case sensitive" y cambiase algunas letras que están en minúscula por las mismas pero en mayúsculas, la web volvería a ser vulnerable.

www.webvulnerable.com/server.php?cadena=<sCripT>alert('XSS')</ScRipt>

Obviamente el filtrado que nos vamos a encontrar en un laboratorio en nivel "medium" o "high" no va a valer porque ya estará implementado un filtro que no permita el cambio de minúsculas a mayúsculas, pero también es cierto que podremos saltarlo nuevamente.
Esto es solo para que os deis cuenta que a veces con algo tan sencillo como lo visto hoy podemos evadir algunos filtros. Lo que quiero con esto es que abráis la mente y penséis más.

Recordar que esto es con fines educativos, no para andar tirando scripts por ahí a lo loco. Espero que os haya gustado y lo pongáis en practica en vuestro laboratorio. 


Roberto García (@1GbDeInfo)

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/.

Perfil profesional en Linkedin

 
Blogger Templates