logo Homepage
+  NewbieContest
|-+  Divers» Hacking» [PHP] $_session
Username:
Password:
Pages: [1]
  Imprimer  
Auteur Fil de discussion: [PHP] $_session  (Lu 7282 fois)
Ss2K
Profil challenge

Classement : 7109/54252

Néophyte
*
Hors ligne Hors ligne
Messages: 32


Voir le profil
« le: 11 Avril 2007 à 00:08:17 »

Yoh !
Est-il possible de mentir sur les $_SESSION ? en modifiants les headers http par exemple (comme pour le REFERER) ou même avec une méthode plus complexe ?
J'ai fais une zone membre, avec une zone admin, et régulierement je teste les $_SESSION pour verifier que l'user est bien authentifié et qu'il a bien les droits nécessaire pour consulter la page, mais justement... je ne sais absolument pas si ces variables sont fiables (meme si c'est pas du 100% un **No Sms** 90% serait déja pas mal )
Journalisée

Si TOUT est VRAI alors TOUT est FAUX ! ( _TT-o )
Enjoy !
the lsd
Administrateur

Profil challenge

Classement : 189/54252

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3096

poulping for fun & profit


Voir le profil WWW
« #1 le: 11 Avril 2007 à 10:28:29 »

Les sessions sont fiables

Le principe reste simple
 - authentification
 - création d'une clé sur le serveur
 - phpsessid unique (enfin quasi unique, mais pour avoir une clé en double, il faut un sacré paquet d'user connecté en meme temps...)

Donc le moyen de bypasser des sessions c'est de trouver le phpsessid de quelqu'un de connecté, qui n'est pas chose facile.

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
StCyr
Profil challenge

Classement : 2199/54252

Néophyte
*
Hors ligne Hors ligne
Messages: 29


Voir le profil
« #2 le: 11 Avril 2007 à 11:18:56 »

Citation de: the lsd
Donc le moyen de bypasser des sessions c'est de trouver le phpsessid de quelqu'un de connecté, qui n'est pas chose facile.
Comme dans le challenge des portes de Nms?
Journalisée
Ge0

Profil challenge

Classement : 16/54252

Membre Senior
****
Hors ligne Hors ligne
Messages: 377


Voir le profil WWW
« #3 le: 11 Avril 2007 à 12:00:12 »

StCyr, évite de spoiler...
Sinon the lsd, des que tu as le phpsessid d'une autre personne, tu as accès à ses données de session, nop ?
Journalisée
Zmx

Profil challenge

Classement : 69/54252

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 559


Voir le profil WWW
« #4 le: 11 Avril 2007 à 12:30:17 »

il y as pas une histoire de global j'sais pas quoi a true dans php4 qui peux permettre sous certaine condition d'ecraser la session ?
Journalisée

nofx
Profil challenge

Classement : 1820/54252

Membre Junior
**
Hors ligne Hors ligne
Messages: 88


Voir le profil WWW
« #5 le: 11 Avril 2007 à 12:55:41 »

Si je crois qui ya un truc avec les globales si elles ont été mal iniatilisées au départ!

ya un truc dans le genre ici http://www.student-designer.com/fr/tutoriaux/programmation/php-mysql/securite/php-register-globals-failles/
Journalisée
Ss2K
Profil challenge

Classement : 7109/54252

Néophyte
*
Hors ligne Hors ligne
Messages: 32


Voir le profil
« #6 le: 13 Avril 2007 à 17:01:57 »

vous parlez de register_global ? il me semble que maintenant c'est a OFF (mais je sais pas trop a quoi ca sert)
Sinon merci the lsd tu m'evite de verifier systematiquement si le compte a bien été créé
Journalisée

Si TOUT est VRAI alors TOUT est FAUX ! ( _TT-o )
Enjoy !
darkfig
Profil challenge

Classement : 2746/54252

Néophyte
*
Hors ligne Hors ligne
Messages: 22


Voir le profil WWW
« #7 le: 14 Avril 2007 à 15:48:32 »

Citation
- phpsessid unique (enfin quasi unique, mais pour avoir une clé en double, il faut un sacré paquet d'user connecté en meme temps...)
La clé généré sera toujours unique, etant donné que les sessions sont stockés dans un repertoire, il ne peut pas y avoir de fichiers portant le meme nom (sess_[0-9]{32} le plus souvent) dans un meme repertoire.

Citation
Donc le moyen de bypasser des sessions c'est de trouver le phpsessid de quelqu'un de connecté, qui n'est pas chose facile.
Via une xss, ou en ayant un accès local et un exploit php permettant de bypasser les restrictions imposés par open_basedir c'est faisable (ou par exemple via une faille de type overwrite de variables )

Citation
Sinon the lsd, des que tu as le phpsessid d'une autre personne, tu as accès à ses données de session, nop ?
Cette joke...les données des sessions sont stockés sur le serveurs et le dossier (la plupart du temps) est protégé d'accès, tu ne peut donc pas y avoir accès, sauf si ya du code qui affiche des données du tableaux sessions.

Citation
il y as pas une histoire de global j'sais pas quoi a true dans php4 qui peux permettre sous certaine condition d'ecraser la session ?
Oui. Si la directive register_globals est sur On, et si la personne n'a pas appellé la fonction session_start() il est possible de modifier / créé des valeurs du tableau $_SESSIONS.

Citation
vous parlez de register_global ? il me semble que maintenant c'est a OFF (mais je sais pas trop a quoi ca sert)
Oui pour des raisons de sécurité cette directive est sur Off par défaut maintenant
Journalisée
mito

Profil challenge

Classement : 12989/54252

Membre Junior
**
Hors ligne Hors ligne
Messages: 61


Voir le profil
« #8 le: 16 Avril 2007 à 20:04:41 »

Citation
Oui. Si la directive register_globals est sur On, et si la personne n'a pas appellé la fonction session_start() il est possible de modifier / créé des valeurs du tableau $_SESSIONS.
La variable $_SESSIONS est faillible car on a oublié la fonction [h]session_start()[/h] !!!.
c'est à dire que nous pouvons crée notre sessions puis nous connectez avec celle-ci.?(j'en apprendrai tous les jours)
Vous connaissez d'autre astuce ,où une variable est faillible quand on a oublié une fonction.

Ma soif de connaissance est grande .Le partage est *bidirectionnel*
Journalisée

capitaliste:art de manipuler une population .
sarkosyste:art de rassembler une population par l'apparence.
the lsd
Administrateur

Profil challenge

Classement : 189/54252

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3096

poulping for fun & profit


Voir le profil WWW
« #9 le: 18 Avril 2007 à 08:43:58 »

Citation de: darkfig
Citation
- phpsessid unique (enfin quasi unique, mais pour avoir une clé en double, il faut un sacré paquet d'user connecté en meme temps...)
La clé généré sera toujours unique, etant donné que les sessions sont stockés dans un repertoire, il ne peut pas y avoir de fichiers portant le meme nom (sess_[0-9]{32} le plus souvent) dans un meme repertoire.
Au bout d'un moment, on arrive bien a la limite du nom. On aura fait le tour complet des cara alpha numériques. Au demeurant, j'ai bien précisé des users connecté en meme temps. Si il y a un roulement, ca ne marche plus. Mais je susi bien d'accord que dans la pratique, c'est impossible d'arriver à la limite du nom

Citation de: darkfig
Citation
Donc le moyen de bypasser des sessions c'est de trouver le phpsessid de quelqu'un de connecté, qui n'est pas chose facile.
Via une xss, ou en ayant un accès local et un exploit php permettant de bypasser les restrictions imposés par open_basedir c'est faisable (ou par exemple via une faille de type overwrite de variables )
C'est bien evidemment ce que je voulais dire (en parlant principalement des XSS)

Citation de: darkfig
Citation
Sinon the lsd, des que tu as le phpsessid d'une autre personne, tu as accès à ses données de session, nop ?
Cette joke...les données des sessions sont stockés sur le serveurs et le dossier (la plupart du temps) est protégé d'accès, tu ne peut donc pas y avoir accès, sauf si ya du code qui affiche des données du tableaux sessions.
Pour le coup, c'etait une private joke (enfin je pense)

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
Pages: [1]
  Imprimer  
 
Aller à: