elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [Resuelto] Tokens por sesion para hacer mas dificil falsificar peticiones
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] Tokens por sesion para hacer mas dificil falsificar peticiones  (Leído 16,087 veces)
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: komo se hacen tokens por sesion para hacer mas dificil el falsificar peticiones
« Respuesta #10 en: 14 Mayo 2013, 21:12 pm »

Citar
veis algun inconveniente que utilice el referer solo?

Si... es spoofeable y hay usuarios/navegadores que no lo mandan para que les sea mas difícil hacerles seguimiento.. es una cabecera de la que no hay que fiarse..

http://www.php.net/manual/es/function.session-set-cookie-params.php

PD: También puedes pasar la session por URL...
http://php.net/manual/es/session.idpassing.php

Saludos


« Última modificación: 14 Mayo 2013, 21:14 pm por drvy | BSM » En línea

tecasoft


Desconectado Desconectado

Mensajes: 319

Ciberseguridad tecasoft.com


Ver Perfil WWW
Re: komo se hacen tokens por sesion para hacer mas dificil el falsificar peticiones
« Respuesta #11 en: 14 Mayo 2013, 22:27 pm »

http://www.php.net/manual/es/function.session-set-cookie-params.php en el php.ini me marca 1440 es decir 24 minutos pero lo he probado y tarda unos 30 o 40 minutos eso xk es?



ha quedado asi y funciona a la perfeccion el ejemplo,gracias x la colaboracion:

Código
  1. <?php
  2. // Generar un sha1 aleatorio.
  3. $token = sha1(rand(0,999).rand(999,9999).rand(1,300));
  4. $_SESSION['token'] = $token;
  5.  
  6. ?>
  7. <!doctype html>
  8. <html>
  9. <head>
  10. <meta charset="utf-8">
  11. <title>PoC</title>
  12. </head>
  13. <body>
  14.    <form action="post.php" method="POST">
  15.        <input type="text" name="usuario" />
  16.        <input type="password" name="password" />
  17.        <input type="hidden" name="token" value="<?php echo $token; ?>" />
  18.        <input type="submit" value="Enviar" />
  19.    </form>
  20. </body>
  21. </html>
  22.  

Código
  1. <?php
  2.  
  3.  
  4. if(empty($_SESSION['token']) || empty($_POST['token']) || !preg_match('/[0-9a-f]/',substr($_POST['token'],0,40)) || $_SESSION['token']!==$_POST['token'] || $_SERVER['HTTP_REFERER'] !== "http://192.168.1.2/prueba/tokens_referer/enviar.php")
  5. {
  6.   echo 'Los tokens o el referer no son correctos.';
  7. }
  8. else
  9. {
  10. echo 'Tu consulta ha sido realizada';
  11. echo "<br>";
  12. echo $_SERVER['HTTP_REFERER'];
  13. }
  14. ?>
  15.  

Mod: No hacer doble post.


« Última modificación: 13 Enero 2015, 15:55 pm por #!drvy » En línea

http://www.tecasoft.com Un ninja del hacking etico, programacion en html5, css3, javascript, jquery, php, python, c/c++, ensamblador, ingenieria reversa,a auditorias de seguridad, pentesting, exploits
boxccs

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: komo se hacen tokens por sesion para hacer mas dificil el falsificar peticiones
« Respuesta #12 en: 13 Diciembre 2014, 17:21 pm »

Buenas, estoy intentando entender un poco sobre los tokens pero el formulario de ejemplo que coloco tecasoft, no le veo el mas mínimo sentido, se está usando el token como un capcha ? O algo así? Que tipo de seguridad podría aportar?


En línea

daryo


Desconectado Desconectado

Mensajes: 1.070



Ver Perfil WWW
Re: komo se hacen tokens por sesion para hacer mas dificil el falsificar peticiones
« Respuesta #13 en: 13 Diciembre 2014, 17:37 pm »

es para evitar una vulnerabilidad web conocidad como csrf. http://es.wikipedia.org/wiki/Cross_Site_Request_Forgery


imagna que yo quiero hacer que cierres sesion, cambies tu clave o cualquier cosa en un foro entonces yo te envio un enlace como este.

http://foro.elhacker.net/logout.html

lo abres y ya sin querer cerraste sesion(bue es un ejemplo pero se pueden hacer cosas mas peligrosas xD)

pero si la pagina en cuestion pidiera tokens es decir una secuencia de caracteres aleatoria que cambia por cada inicio de sesion entonces tu abres el link y amenos que tengas el token no pasa nada

el token de sesion que tengo ahora y el enlace tendria que ser asi (diferente por cada sesion)xD:
http://foro.elhacker.net/logout.html;sesc=XXXXXX
« Última modificación: 13 Diciembre 2014, 17:46 pm por #!drvy » En línea

buenas
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines