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.