• STATISTIQUES
  • Il y a eu un total de 3 membres et 11773 visiteurs sur le site dans les dernières 24h pour un total de 11 776 personnes!


    Membres: 2 461
    Discussions: 3 572
    Messages: 32 818
    Tutoriels: 77
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] Le top web
    Nous offrons une sélection la plus large possible de resources webmaster gratuites, hébergement gratuit...
    Webmaster
    [EN] Rankk
    Site de challenge construit sur le principe d'une pyramide à 9 level. Level 1: 60,Level 2: 72,Level 3: 68,Lev...
    Challenges
    [EN] This is legal
    Basic: 10, Realistic: 5, Programming: 1, Bonus: 11, SQL: 2, Encryption: 6, Application: 4, User Contributed: 3
    Challenges
    [EN] Listbrain Version 3
    Site proposant 66 challenges présentés dans une liste mélangée.
    Challenges
    [FR] Zmaster
    Articles sur l'informatique, le hacking, le P2P, les divx, les astuces windows XP, les GSM, Emule, la cryptograph...
    Hacking
    [EN] social-engineer
    Site dédié au Social Engineering en général.
    Hacking
    [EN] wechall
    Pour les gens n'étant pas familiers avec les sites de challenges, un site de challenges est un site propos...
    Hacking

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Attaque par fixation de session
09-03-2013, 08h26
Message : #1
InstinctHack Hors ligne
Posting Freak
*



Messages : 1,365
Sujets : 184
Points: 299
Inscription : Dec 2011
Attaque par fixation de session
Salut,

Toujours sur mon framework, j'essaye de créer mon gestionnaire de session, de la doc j'ai repris ce code :
Code PHP :

class MySessionHandler implements \SessionHandlerInterface
{
    private $savePath;

    public function open($savePath, $sessionName)
    {
        $this->savePath = $savePath;
        if (!is_dir($this->savePath))
            mkdir($this->savePath, 0777);
        return true;
    }

    public function close()
    {
        return true;
    }

    public function read($id)
    {
        return (string)@file_get_contents($this->savePath.$id);
    }

    public function write($id, $data)
    {
        return file_put_contents($this->savePath.$id, $data) === false ? false : true;
    }

    public function destroy($id)
    {
        $file = $this->savePath.$id;
        if (file_exists($file))
            unlink($file);
        return true;
    }

    public function gc($maxlifetime)
    {
        foreach (glob($this->savePath.'*') as $file)
        {
            if (filemtime($file) + $maxlifetime < time() && file_exists($file))
                unlink($file);
        }
        return true;
    }
}

 


Outre les suppresions d'erreurs dégeulasses, cette ligne me pose quelques soucis de sécurité :
Code PHP :

return (string)@file_get_contents($this->savePath.$id);
 

$id étant le contenu du cookie {session_cookie_name} , bon outre le fait que "../htaccess" supprimerais la totalité du précieux fichier, je me demandais si ça posais pas de problème qu'un utilisateur puisse définir lui-même le SID...
Une attaque par fixation passerais par un lien page.php?PHPSESSID={new_id} mais là, ça me semble pas possible avec du javascript de send un header personnalisé.

Donc un coup de ctype et c'est bon ? où faut empecher l'utilisateur de le modifier en gardant une trace de chaque SID généré et de comparer avant ?
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!"
j'ai pas compris pourquoi, je croyais qu'on était dans la même classe
+1 (0) -1 (0) Répondre
09-03-2013, 12h30 (Modification du message : 09-03-2013, 12h40 par InstinctHack.)
Message : #2
InstinctHack Hors ligne
Posting Freak
*



Messages : 1,365
Sujets : 184
Points: 299
Inscription : Dec 2011
RE: Attaque par fixation de session
Bon en fait je m'auto-répond Smile

La modification du sid auras plusieurs conséquences :
création d'un nouveau fichier.
"perte" des données de la session précédante (bien qu'on puisse repasser sur l'autre en la renvoyant)

les précautions à prendre sont que le sid soit alphanumériques (en vérité, faut vérifié que le fichier ne remonte pas dans les dossier, ce qui pourrais rendre inaccessible le site) (bien sur ça dépend de la façon dont on stocke les données, j'ai choisi les fichiers Smile )

donc, n'importe qui peux se créer un nouveau sid (bien que vous pouvez faire des tests de longueur/compléxité avant, et même interdire cette pratique en gardant dans un autre fichier les sid que le serveur auras généré, ainsi si un client se pointe avec un sid qui n'en fait pas partie, il se fait recevoir comme il faut Big Grin )

Et puis comme il est de bonne pratique de regenerer le sid lors d'une élévation de droit et si vous la suivais, l'utilisateur seras obligé de garder ce sid, dans le cas contraire, il perdras tout privilège que l'élévation lui aurais donnée.

Si ça peux en aider d'autres à l'avenir Wink
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!"
j'ai pas compris pourquoi, je croyais qu'on était dans la même classe
+1 (1) -1 (0) Répondre
15-03-2013, 09h44
Message : #3
InstinctHack Hors ligne
Posting Freak
*



Messages : 1,365
Sujets : 184
Points: 299
Inscription : Dec 2011
RE: Attaque par fixation de session
Au fait j'ai un autre problème maintenant.. Le système marche très bien, tant qu'on as les cookie activés (normal quoi)
En revanche, c'est pas la fête quand on les desactive, en effet un fichier est crée à chaque requete, ce qui fait que le dossier temporaire pour les sessions glonfle :O donc un con qui demande 500 page à la minute auras vite fait de faire planter le système. (je vais faire un système d'anti-dos (ok ça reste de l'applicatif) ) mais le problème est toujours là Sad
J'arrive à detecter les cookie en deux requetes , mais ça change rien, j'ai pensé à garder l'historique des demandes de création de session et limiter la création à une ip toutes les minutes, mais je sais pas... l'idée me plait pas trop... à voir Smile
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!"
j'ai pas compris pourquoi, je croyais qu'on était dans la même classe
+1 (0) -1 (0) Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  Attaque d'un serveur. HELP !! Coolrain 4 3,394 06-12-2017, 11h21
Dernier message: supersnail

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut