CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Sessions PHP et sécurité.

Fire_Storm
Fire_Storm
Niveau 10
15 novembre 2011 à 13:20:52

Bonjour,

Je pensais globalement avoir fait le tour de la sécurité de mon site et je me rends compte que finalement pas du tout, enfin y a un certain rique potentiel quoi.

Ce problème concerne en fait les sessions PHP.

Je n'avais jamais fait gaffe (et oui je suis con je sais ^^) aux sessions pensant que celle ci étaient inaccessibles de l'utilisateur sans avoir accès au serveur; grossière erreur de ma part; et oui forcément pour pouvoir comparer un fichier temporaire, il faut bien une variable venant de l'utilisateur, qui est stockée dans PHPSESSID, qui est modifiable à souhait; en bref si vous arrivez à deviner comment est construit la session, vous pouvez usurper l'identité de n'importe quel personne connectée (et trouver un ID ou un login n'est vraiment pas compliqué du tout).

Donc en changeant le PHPSESSID par une session valide; on se retrouve sur le compte de l'utilisateur sans soucis, exactement comme un cookie (en fait c'est un cookie gros bêta ^^). Et admettons que la session stocke par exemple l'ID de l'utilisateur, c'est le genre d'info qui se trouve en 10 secondes -> vive le carnage !

Ma question porte surtout sur le comment la session est elle créée, je ne parle pas du code PHP mais bien du fonctionnement global, en bref comment $_SESSION['User'] = 12345 devient un hash (md5 je crois), est ce que le fonctionnement est le même pour tout les serveurs ou bien est ce que l'hébergeur décide lui même de la manière d'encoder celle ci (j'ai tenté plusieurs choses mais je ne tombe pas sur le bon hash).

Si je demande tout ça c'est simplement qu'avec cette information, je peux me mettre dans la tête du pirate et tenter donc de m'auto-pirater (ce qui ne devrait poser aucun problème vu la putain de sécurité à revoir !).

Bref pour ceux qui ont fait gaffe à ce soucis, comment grosso modo (je ne demande pas le script hein, c'est le genre de truc qui doit rester secret évidemment) comment créez vous votre session ? L'ID entre autre j'imagine comme moi (sauf que je me rends compte que c'est une très belle et très grosse erreur que de ne stocker que lui).

De plus admettons qu'on combine ça avec une XSS plutôt bien foutue et on se retrouve avec une belle brochette de comptes à usurper (comme quoi moi qui voyais les XSS comme un simple joujou, je me rends compte qu'il y a moyen de bien foutre la merde partout... et dire qu'il y en avait une il y a 2 mois sur le moteur de recherche snif XD Non je plaisante, je n'aurai rien fait de toute façon ^^).

Bref, encore une chose où je ferai d'autant plus attention à l'avenir et qui m'apprendra à encore plus réfléchir avant de foncer dans le tas comme un con (heureusement aucun soucis jusqu'ici).

Merci d'avance en tout cas.

deepblue
deepblue
Niveau 16
15 novembre 2011 à 14:12:00

Une session par ip, si l'ip n'est pas celle qui a créé la session, tu vires le mec :) Ce n'est pas plus compliqué que ça ^^

Après, comment est généré le phpsessid, j'en sais rien, coté serveur, c'est un fichier avec a priori les données sérialisées ou un simple json like, je ne me souviens plus.

Fire_Storm
Fire_Storm
Niveau 10
15 novembre 2011 à 14:41:43

... je ne te le dit jamais assez mais... je te déteste. ^^

Pourquoi je vais chercher de ces trucs moi ! XD

Ok donc un bête md5 ne permettra pas d'obtenir le même hash (c'était surtout pour éviter que mister X ne pique les comptes des voisins, là notre crédibilité en prendrait un sacré coup, et bye bye les futurs projets).

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment