Hoy me voy a orientar en inyecciones de códigos XSS, la cual en este artículo hablaremos sobre el Title que es uno de los lugares más escondidos y en los que uno mismo menos se percata a la hora de programar y el cuerpo/contenido que es uno de los más utilizados.
Vamos a suponer que tenemos nuestra página estructurada y la programación ya esta echa, bien entonces probemos con algo como esto:
Claramente se puede observar que el código PHP que añadimos en la etiqueta BODY está protegido y se elimino la posibilidad de añadir código, pues bien entonces dejamos por descuido el TITLE sin filtrar y hay estaría el problema.
Se pueden realizar muchas inyecciones de código, hay solamente estamos modificando el TITLE, pero si queremos añadir por ejemplo código en el BODY, utilizaremos un ejemplo vulnerable similar al primero que mencionamos pero está vez tanto como el TITLE y el BODY estarán vulnerables a cualquier inyección, bueno hagamos lo así:
Cómo estamos utilizando la misma variable, osea definiendo la misma variable tanto en el TITLE Título como en el contenido BODY, nos vamos a enfocar en que somos el hacker y nos vamos a ahorrar trabajo en casos como estos, osea no será de mucha utilización ni estructura miento de código, así que vamos a utilizar un ejemplo cómo:
Claramente se puede ver que estamos intentando modificar el TITLE más el BODY añadiendo un Titulo H1 y una imagen, obviamente ni el H1 ni la imagen se visualizarán en el TITLE pero se verán en el BODY, bueno para no extendernos demasiado voy a mostrarles un ejemplo utilizando Javascript:
Con ese código Javascript vamos a generar una ventana de alerta emergente en nuestro index.php cada vez que accedamos desde la dirección proporcionada, el código se inyecta en el BODY y se genera en la página completa, a diferencia de la inyección de Titulos H1 y imágenes es que se van a generar en un lugar especifico dónde se encuentre la variable vulnerable, también podemos hacer un método de redirección con HTML y JavaScript, pero en este caso vamos a utilizar JavaScript:
Inyectando ese código, siempre al acceder a la dirección mostrada se redireccionará a google.com u otro sitio modificando la url, bien se pueden hacer muchas inyecciones de código, este artículo es algo básico, en este artículo no se aplican medidas de seguridad sinó unos ejemplos de inyección XSS, para ver un artículo de como evitar estas inyecciones puedes mirar una recopilación de funciones de seguridad que publique hace mucho, espero pueda servirles de algo.
Más Información
Vamos a suponer que tenemos nuestra página estructurada y la programación ya esta echa, bien entonces probemos con algo como esto:
[<HTML> <HEAD> <TITLE><?php echo $_GET['query']; ?></TITLE> </HEAD> <BODY> Busqueda: <?php echo strip_tags($_GET['query']); ?> </BODY> </HTML>]
Claramente se puede observar que el código PHP que añadimos en la etiqueta BODY está protegido y se elimino la posibilidad de añadir código, pues bien entonces dejamos por descuido el TITLE sin filtrar y hay estaría el problema.
Realizando una url y añadiendo XSS
Bien nuestro TITLE está desprotegido, pues vamos a tratar de modificar lo estructurando una url con código HTML o Javascript, bien vamos a suponer que es el archivo index.php y vamos a utilizar algo como esto:[index.php?query=<title>Título nuevo Modificado</title>]
Se pueden realizar muchas inyecciones de código, hay solamente estamos modificando el TITLE, pero si queremos añadir por ejemplo código en el BODY, utilizaremos un ejemplo vulnerable similar al primero que mencionamos pero está vez tanto como el TITLE y el BODY estarán vulnerables a cualquier inyección, bueno hagamos lo así:
[<HTML> <HEAD> <TITLE><?php echo $_GET['query']; ?></TITLE> </HEAD> <BODY> Busqueda: <?php echo $_GET['query']; ?> </BODY> </HTML>]
Cómo estamos utilizando la misma variable, osea definiendo la misma variable tanto en el TITLE Título como en el contenido BODY, nos vamos a enfocar en que somos el hacker y nos vamos a ahorrar trabajo en casos como estos, osea no será de mucha utilización ni estructura miento de código, así que vamos a utilizar un ejemplo cómo:
[index.php?query=<title>Título nuevo Modificado</title><h1>Contenido hackeado</h1><img src=URL-IMAGEN.jpg>]
Claramente se puede ver que estamos intentando modificar el TITLE más el BODY añadiendo un Titulo H1 y una imagen, obviamente ni el H1 ni la imagen se visualizarán en el TITLE pero se verán en el BODY, bueno para no extendernos demasiado voy a mostrarles un ejemplo utilizando Javascript:
[index.php?query=<script>alert("Ejemplo Hacked");</script>]
Con ese código Javascript vamos a generar una ventana de alerta emergente en nuestro index.php cada vez que accedamos desde la dirección proporcionada, el código se inyecta en el BODY y se genera en la página completa, a diferencia de la inyección de Titulos H1 y imágenes es que se van a generar en un lugar especifico dónde se encuentre la variable vulnerable, también podemos hacer un método de redirección con HTML y JavaScript, pero en este caso vamos a utilizar JavaScript:
[index.php?query=<script>window.location = "http://www.google.com";</script>]
Inyectando ese código, siempre al acceder a la dirección mostrada se redireccionará a google.com u otro sitio modificando la url, bien se pueden hacer muchas inyecciones de código, este artículo es algo básico, en este artículo no se aplican medidas de seguridad sinó unos ejemplos de inyección XSS, para ver un artículo de como evitar estas inyecciones puedes mirar una recopilación de funciones de seguridad que publique hace mucho, espero pueda servirles de algo.
Más Información