Test Foro de elhacker.net SMF 2.1

Seguridad Informática => Bugs y Exploits => Hacking => Nivel Web => Mensaje iniciado por: tecasoft en 1 Diciembre 2017, 13:09 PM

Título: ataques weak session ids
Publicado por: tecasoft en 1 Diciembre 2017, 13:09 PM
buenas ante todo gracias de antemano, busco un experto en ataques a nivel web y que me pueda hechar una mano, tengo una serie de problemas respecto a los ataques WEAK SESSION IDs he utiizado la herramienta DVWA y todo correcto a la hora de atacar, pero si quiero proteger mi web: utilizo solo $_SESSION para el usuario y contraseña y la contraseña va cifrada en sha512, tendria que hacer algo al respecto sobre esas $_SESSION porque la web me crea un >>>>>>>>>>>>>>>>>>>> PHPSESSID   con CONTENT: 3hhmi0d138ist11178q0ovt7a5

lo estoy haciendo en localhost
y con el burp suite he sido capaz de superar los niveles de DVWA pero nose si deberia aplicar algo al respecto sobre esa sesion o solo es si utilizas $_COOKIE ?

espero que me guieis gracias
Título: Re: ataques weak session ids
Publicado por: engel lex en 1 Diciembre 2017, 13:54 PM
aclaracion: la contraseña no está cifrada, sha256 es un hash

digamos que tienes 3 niveles de control con respecto a sesiones, de más alto a más bajo

1- session_start(): el normal de siempre, simplemente usarlo e iniciar sesión
2- session_id(): te permite establecer el id de sesion a mano ejemplo de uso
Código (php) [Seleccionar]
$sid = md5('numero al azar');   
session_id($sid);
session_start();

3- $_COOKIE + MySQL: este metodo es establecer en una tabla temporal de MySQL la session y manejarla tu totalmente a mano desde COOKIE

ojo, control != seguridad

con lo que respecta a seguridad las capas de seguridad serían (cada vez más radical pudiendose hacer hasta molesta para el usuario), se pueden aplicar independiente o apiladas

-establecer una sesión (lo básico de arriba)
-validar sesión contra ip
-validación de sesión por huella de navegador por $_SERVER
-validación de sesión por huella de navegador por <script>
-cambiar id por petición hecha

espero esto te sirva de algo
Título: Re: ataques weak session ids
Publicado por: tecasoft en 1 Diciembre 2017, 14:20 PM
te refieres a esto:

Código (php) [Seleccionar]

if ($_SERVER['REQUEST_METHOD'] == "POST") {
   $cookie_value = sha1(mt_rand() . time() . "Impossible");
   setcookie("dvwaSession", $cookie_value, time()+3600, "/vulnerabilities/weak_id/", $_SERVER['HTTP_HOST'], true, true);
}


pero yo solo utilizo el PHPSESSID, ya que no utiizo $_COOKIE de momento.

solo utilizo $_SESSION['usuario'] y $_SESSION['contrasena']

?
Título: Re: ataques weak session ids
Publicado por: engel lex en 1 Diciembre 2017, 14:22 PM
if ($_SERVER['REQUEST_METHOD'] == "POST") {
    $cookie_value = sha1(mt_rand() . time() . "Impossible");
    setcookie("dvwaSession", $cookie_value, time()+3600, "/vulnerabilities/weak_id/", $_SERVER['HTTP_HOST'], true, true);
}


no se de donde sacaste eso... pero no del todo, me referí a múltiples cosas

Título: Re: ataques weak session ids
Publicado por: tecasoft en 1 Diciembre 2017, 14:28 PM
entonces utilizar esto que tal iria? pueden hackearte si saben id de session del PHPSESSID?:

Código (php) [Seleccionar]


$sid = sha1('numero al azar');   
session_id($sid);
session_start();


como lo aplicarias tu para protegerte un poco las $_SESSION[], un ejemplo me vendria bien para calentar motores. Gracias
Título: Re: ataques weak session ids
Publicado por: engel lex en 1 Diciembre 2017, 14:37 PM
si se llevan el PHPSESSID y no tienes algún metodo de confirmación, secuestrarán la sesión... lo primero para evitar esto es validar sesión contra ip, si la conexión no es la misma ip, ignoras la peticion
Título: Re: ataques weak session ids
Publicado por: tecasoft en 1 Diciembre 2017, 14:46 PM
y eso como lo podria hacer? porque esto verde. Gracias
Título: Re: ataques weak session ids
Publicado por: engel lex en 1 Diciembre 2017, 14:58 PM
al iniciar la sesión guardas la ip como variable de sesion, y luego todas las conexiones las comparas, si no es la misma ip, destruyes la sesion

Código (php) [Seleccionar]
// en login
$_SESSION["ip"]=$_SERVER["REMOTE_ADDR"];


en carga de pagina
Código (php) [Seleccionar]
if($_SESSION["ip"] != $_SERVER["REMOTE_ADDR"]) destruir_sesion();
Título: Re: ataques weak session ids
Publicado por: tecasoft en 1 Diciembre 2017, 15:06 PM
pero hace falta guardar en una base de datos estilo y que verifique en cada pagina esto al iniciar, estaria haciendolo bien? o me faltaria comprobar algo mas la seguridad?:

Código (php) [Seleccionar]

<?
if (mysqli_query("select * from usuarios_admin   WHERE ip = '$_SERVER[REMOTE_ADDR]' and user='$user' AND pass='$pass')

echo "Estas logueado";
?>
Título: Re: ataques weak session ids
Publicado por: tecasoft en 1 Diciembre 2017, 15:08 PM
Cita de: tecasoft en  1 Diciembre 2017, 15:06 PM
pero hace falta guardar en una base de datos estilo y que verifique en cada pagina esto al iniciar, estaria haciendolo bien? o me faltaria comprobar algo mas la seguridad?:

Código (php) [Seleccionar]

<?
if (mysqli_query("select * from usuarios_admin   WHERE ip = '$_SERVER[REMOTE_ADDR]' and user='$user' AND pass='$pass')

echo "Estas logueado";
?>


vale ya voy pillandolo, es decir trabajo con sessiones y sin recurrir a una base de datos no haria falta verdad?
Título: Re: ataques weak session ids
Publicado por: engel lex en 1 Diciembre 2017, 15:20 PM
exacto, literalmente como te di el ejemplo