Autor
|
Tema: [Resuelto] Tokens por sesion para hacer mas dificil falsificar peticiones (Leído 16,020 veces)
|
tecasoft
Desconectado
Mensajes: 319
Ciberseguridad tecasoft.com
|
komo se hacen tokens por sesion para hacer mas dificil el falsificar peticiones web? y seria dificil o imposible el falsificar peticiones web? gracias
|
|
« Última modificación: 13 Enero 2015, 15:56 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
|
|
|
#!drvy
|
Para empezar, los tokens sirven para prevenir CSRF. http://en.wikipedia.org/wiki/Cross-site_request_forgeryAhora, esto no previene que el atacante haga un script donde el se conecta a tu pagina, captura el token y te lo envía en su próxima petición. Por tanto, le da cierta seguridad al usuario, pero no hace dificil/imposible que se puedan realizar peticiones web. El token no suele ser mas que un md5/sha1/string aleatorio. La pagina que vaya a solicitar la acción se lo manda a la que realiza la acción. Esta comprueba si es valido y en tal caso, realiza la acción. Saludos
|
|
|
En línea
|
|
|
|
tecasoft
Desconectado
Mensajes: 319
Ciberseguridad tecasoft.com
|
pero si yo mando 123 x $_SESSION y en la otra web esta apuntado 123 y compara si es verdad o no, debe ser imposible hacer peticiones desde el exterior con un formulario no?yo lo entiendo asi
|
|
|
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
|
|
|
#!drvy
|
La session al fin y al cabo no es mas que una cookie.. (y no voy a explicar porque xD). Si yo hago un script, que se connecte a la primera pagina, guarde la cookie PHPSID y vaya a la segunda pagina mostrando la cookie, el token sera totalmente valido.
Saludos
|
|
|
En línea
|
|
|
|
tecasoft
Desconectado
Mensajes: 319
Ciberseguridad tecasoft.com
|
a vale ya voy entendiendo algo, dices,que la cookie la guardara y es la misma que en el otro caso, es decir podria navegar no? y que se podria hacer con esa cookie? con ejemplo me entiendo mejor, ya sabes cosas de la informatica
me podriais responder,eske ando atascado en esto de los tokens, me podeis poner algun ejemplo,os lo agradeceria bastante,gracias.
Mod: No hacer doble post.
|
|
« Última modificación: 13 Enero 2015, 15:54 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
|
|
|
xustyx
Desconectado
Mensajes: 213
|
Lo que puedes hacer que supongo que ya sabrás és, generar todos los formularios con el input hiden del token con php a partir de un string random pasado a md5 y guardado en la db a la hora que un usuario logea, entonces cuando te llega la peticion post miras el user y miras si el token es el que tiene asignado, tambien puedes mirar el referer y ver que la peticion se realizo de una url deseada.
Saludos
|
|
|
En línea
|
|
|
|
#!drvy
|
Yo creo que con un token aleatorio por cada acción a realizar va de sobra. Así incluso aunque tu script resulte vulnerable y alguien es capaz de capturar el token (algo que pasa en ciertas versiones de SMF...) no le servirá mas que 1 vez... Tal y como te ha dicho @xustyx, la idea es generar el token y añadirlo como un campo hidden al formulario. <?php // Generar un sha1 aleatorio. $_SESSION['token'] = $token; ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>PoC</title> </head> <body> <form action="post.php" method="POST"> <input type="text" name="usuario" /> <input type="password" name="password" /> <input type="hidden" name="token" value="<?php echo $token; ?>" /> <input type="submit" value="Enviar" /> </form> </body> </html>
Luego en la pagina que va a recibir el formulario y/o realizar la accion, compruebas antes el token.. <?php // Comprobar si el session o el post del token estan vacios y compararalos para ver si coinciden. if(empty($_SESSION['token']) || empty($_POST['token']) || $_SESSION['token']!==$_POST['token']){ die('Tu token no es valido. Realiza tu consulta de nuevo. Si eres un juanker, que sepas que me tire a tu mami anoche.'); } echo 'Tu consulta ha sido realizada'; ?>
Saludos
|
|
|
En línea
|
|
|
|
tecasoft
Desconectado
Mensajes: 319
Ciberseguridad tecasoft.com
|
os mereceis un ahora por cierto el $_POST['token'] no seria mejor antes pasarle un antiddos(la longitud del campo con un length) o tambien pasarle un anti code injection(filtrar lista blanca con numeros y letras) es que podria ser que puedan cambiar algo en el codigo y ejecutarlo de forma malintencionada no? vosotros veis esas posibilidades?
|
|
|
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
|
|
|
#!drvy
|
Suponiendo que la máxima longitud de un sha1 son 40 caracteres en hex, solo se compone de números 0-9 y letras de la a a la f... <?php // Comprobar si el session o el post del token estan vacios y compararalos // para ver si coinciden. if(empty($_SESSION['token']) || empty($_POST['token']) || $_SESSION['token']!==$_POST['token']) { die('Tu token no es valido. Realiza tu consulta de nuevo.'); } echo 'Consulta valida'; ?>
Aunque... lo que mas te puede pasar es que tengas una configuración tan jodida que PHP permita meter 1-2GB en $_POST... lo que haría que tarde unos cuantos segundos mas en procesar nada mas creo yo.. xD antiddos(la longitud del campo con un length Fiarse de un input con length por seguridad... es como comprarse esta pistola y rezar que no te mate... Saludos
|
|
« Última modificación: 14 Mayo 2013, 04:35 am por drvy | BSM »
|
En línea
|
|
|
|
tecasoft
Desconectado
Mensajes: 319
Ciberseguridad tecasoft.com
|
pues hay un pequeño problema en el campo del formulario al crear el $_SESSION caduca la session al cabo de 30 o 40 min y me da error,envede consulta con exito,me caduca la session entonces tendre que hacerlo con un $_SERVER['HTTP_REFERER'], x lo visto se me soluciona con el referer,veis algun inconveniente que utilice el referer solo?
Edito: donde supuestamente esta el formulario, es donde va un editor web(para que los usuarios metan javascript,html,pero lo k yo kiera,es decir un wysiwyg) pasaria algo con un XSS que me puedan secuestrar cookies propias o de algun user,estando desde el editor web,repito hago yo lo k kiera cuando lo introduzcan* en formato web* NO en html puro codigo*, perdonar si me explicado mal
|
|
« Última modificación: 14 Mayo 2013, 20:17 pm por tecasoft »
|
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
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Sugerencias para hacer dificil el crackeo Help
« 1 2 »
Programación Visual Basic
|
Maurice_Lupin
|
11
|
5,820
|
3 Febrero 2012, 17:59 pm
por Maurice_Lupin
|
|
|
[BATCH] [RESUELTO] Problema con tokens en comando FOR /F
Scripting
|
Meine programmen
|
2
|
4,093
|
23 Diciembre 2012, 15:10 pm
por Meine programmen
|
|
|
Hay alguna manera de hacer un chat sin hacer muchas peticiones al servidor?
Desarrollo Web
|
70N1
|
0
|
1,977
|
20 Marzo 2013, 01:27 am
por 70N1
|
|
|
MOVIDO: komo se hacen tokens por sesion para hacer mas dificil el falsificar peticiones
Desarrollo Web
|
дٳŦ٭
|
0
|
1,759
|
8 Mayo 2013, 19:07 pm
por дٳŦ٭
|
|
|
Internautas explican en Youtube cómo falsificar credenciales para votar en ...
Noticias
|
wolfbcn
|
0
|
1,594
|
26 Enero 2018, 02:53 am
por wolfbcn
|
|