Foro de elhacker.net

Seguridad Informática => 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
  1. $sid = md5('numero al azar');    
  2. session_id($sid);
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
  1. if ($_SERVER['REQUEST_METHOD'] == "POST") {
  2.    $cookie_value = sha1(mt_rand() . time() . "Impossible");
  3.    setcookie("dvwaSession", $cookie_value, time()+3600, "/vulnerabilities/weak_id/", $_SERVER['HTTP_HOST'], true, true);
  4. }
  5.  

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
Código:
 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
  1.  
  2. $sid = sha1('numero al azar');    
  3. session_id($sid);
  4.  

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
  1. // en login
  2. $_SESSION["ip"]=$_SERVER["REMOTE_ADDR"];

en carga de pagina
Código
  1. 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
  1. <?
  2. if (mysqli_query("select * from usuarios_admin   WHERE ip = '$_SERVER[REMOTE_ADDR]' and user='$user' AND pass='$pass')
  3.  
  4. echo "Estas logueado";
  5. ?>
  6.  


Título: Re: ataques weak session ids
Publicado por: tecasoft en 1 Diciembre 2017, 15:08 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
  1. <?
  2. if (mysqli_query("select * from usuarios_admin   WHERE ip = '$_SERVER[REMOTE_ADDR]' and user='$user' AND pass='$pass')
  3.  
  4. echo "Estas logueado";
  5. ?>
  6.  

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