/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
session og variabler - paranoia
Fra : Tonni Aagesen


Dato : 31-08-01 02:27

Hej NG,

Jeg bruger session() i et login system, og kom til at spekulerepå følgende:

Mine tests viser at en uhæderlig person er i stand til at manipulere med
session-variablerne via url'en. Kan på nogen måde tjekke om url'en
indeholder forsøg på manipulation? Evt. via headeren?

--
Mvh
Tonni Aagesen
agent29@mail1.stofanet.dk



 
 
Christian Joergensen (31-08-2001)
Kommentar
Fra : Christian Joergensen


Dato : 31-08-01 06:26

Tonni Aagesen <use.my@signature.com> wrote:

> Mine tests viser at en uhæderlig person er i stand til at manipulere med
> session-variablerne via url'en. Kan på nogen måde tjekke om url'en
> indeholder forsøg på manipulation? Evt. via headeren?

Hent variablerne direkte fra $HTTP_SESSION_VARS array'et.

Ex.

$brugernavn

bliver til

$HTTP_SESSION_VARS["brugernavn"]

--
Christian Jørgensen | "Ford, you're turning into a penguin"
http://www.razor.dk | "Stop it"

Niels Andersen (31-08-2001)
Kommentar
Fra : Niels Andersen


Dato : 31-08-01 06:54

"Tonni Aagesen" <use.my@signature.com> wrote in message
news:3b8ee783$0$3240$ba624c82@nntp01.dk.telia.net...
> Mine tests viser at en uhæderlig person er i stand til at manipulere med
> session-variablerne via url'en. Kan på nogen måde tjekke om url'en
> indeholder forsøg på manipulation? Evt. via headeren?

Se det er den slags der sker, når man benytter register_globals.
Man ved ikke helt hvor variablerne kommer fra. :)

I php.ini er der en lille ting, som hedder "variables_order". Dette er, hvad
der står i min php.ini, og det er ikke noget jeg har pillet ved:

; This directive describes the order in which PHP registers GET, POST,
Cookie,
; Environment and Built-in variables (G, P, C, E & S respectively, often
; referred to as EGPCS or GPC). Registration is done from left to right,
newer
; values override older values.
variables_order = "EGPCS"

Dvs. er der en GET var, vil den overskrive hvad der er i forvejen.
Derefter vil en POST var gøre det samme.
Så en evt. COOKIE var, og til sidst vil en SESSION var overskrive det hele
igen. :)

Altså: Check din konfiguration. Hvis den er i orden, så vil vi gerne se din
test. :)

--
Mvh.

Niels Andersen



Tonni Aagesen (31-08-2001)
Kommentar
Fra : Tonni Aagesen


Dato : 31-08-01 10:19

"Niels Andersen" <niels-usenet@myplace.dk> skrev i en meddelelse
news:_DFj7.27046$Ay1.791815@news000.worldonline.dk...

> Altså: Check din konfiguration. Hvis den er i orden, så vil vi gerne se
din
> test. :)

Hej Niels,

Fra min php.ini:
variables_order = "EGPCS"
register_globals = On

Et eksempel på misbrug:

<?php
session_start();
session_register(x, y);
/* x er en boolsk værdi, der er True hvis bruger har logget ind, y er
brugerens ID */
?>

En side (foo.php) giver brugeren muligheden for at ændre sin profil. Når
siden hentes tjekkes der om x=True eller bliver brugeren omdirigeret til en
tilmeldingsside. Y angiver selvfølgelig hvilken profil, der skal hentes.

En uhæderlig person (Bandit) har fundet ud af dette, og skriver derefter
http://domain.dk/foo.php?x=True&y=5 og vupti, så har han profilen for
brugeren med ID=5.

Nu kræver det jo at "Bandit" ved hvilke variabler der skal manipuleres med,
og om det er nemt eller svært at finde ud af, ved jeg ikke - men jeg skrev
jo også paranoia i titlen Jeg har i øvrigt gjort det en del sværere for
Bandit idet ID bliver sammen holdt med et noget andet unikt for hver bruger,
og Bandit kan umuligt vide begge dele

--
Mvh
Tonni Aagesen
agent29@mail1.stofanet.dk




Niels Andersen (31-08-2001)
Kommentar
Fra : Niels Andersen


Dato : 31-08-01 10:41

"Tonni Aagesen" <use.my@signature.com> wrote in message
news:3b8f562b$0$703$ba624c82@nntp01.dk.telia.net...
> Fra min php.ini:
> variables_order = "EGPCS"

Det ser fint ud.

> Et eksempel på misbrug:

Jeg er med på hvad du mener, jeg mangler bare at se det i praksis. :)
Mine tidligere tests har nemlig vist noget andet.

Kan du ikke skrive et lille script, som demonstrerer problemet?

Jeg ville gerne gøre det selv, men det kniber med tiden. :)

--
Mvh.

Niels Andersen



Tonni Aagesen (31-08-2001)
Kommentar
Fra : Tonni Aagesen


Dato : 31-08-01 12:32

"Niels Andersen" <niels-usenet@myplace.dk> skrev i en meddelelse
news:aZIj7.27092$Ay1.800269@news000.worldonline.dk...

> Jeg er med på hvad du mener, jeg mangler bare at se det i praksis. :)
> Mine tidligere tests har nemlig vist noget andet.

Hmm... yderligere tests viser en session-variabel kun kan manipuleres så
længe den ikke har fået tildelt en værdi.



Tonni Aagesen (31-08-2001)
Kommentar
Fra : Tonni Aagesen


Dato : 31-08-01 12:37

Der var jeg vist lidt hurtig på aftrækkeren

"Niels Andersen" <niels-usenet@myplace.dk> skrev i en meddelelse
news:aZIj7.27092$Ay1.800269@news000.worldonline.dk...

> Jeg er med på hvad du mener, jeg mangler bare at se det i praksis. :)
> Mine tidligere tests har nemlig vist noget andet.

Hmm... yderligere tests viser at man kun kan manipulere en session-variable
så længe den ikke er tildelt en værdi. Er det også hvad du er nået frem til?

> Kan du ikke skrive et lille script, som demonstrerer problemet?

Kan jeg godt, men jeg har ingen steder at lægge det op. (snøft)

--
Mvh
Tonni Aagesen
agent29@mail1.stofanet.dk






Niels Andersen (31-08-2001)
Kommentar
Fra : Niels Andersen


Dato : 31-08-01 16:45

"Tonni Aagesen" <use.my@signature.com> wrote in message
news:3b8f7658$0$3241$ba624c82@nntp01.dk.telia.net...
> > Jeg er med på hvad du mener, jeg mangler bare at se det i praksis. :)
> > Mine tidligere tests har nemlig vist noget andet.
>
> Hmm... yderligere tests viser at man kun kan manipulere en
session-variable
> så længe den ikke er tildelt en værdi. Er det også hvad du er nået frem
til?

Oh. Sådan nogle har jeg vist aldrig arbejdet med. :)

Og hvorfor overhovedet læse noget fra en variabel, der ikke er tildelt nogen
værdi?

Anyway, godt du fik det opklaret. :)

--
Mvh.

Niels Andersen



Søg
Reklame
Statistik
Spørgsmål : 177522
Tips : 31968
Nyheder : 719565
Indlæg : 6408670
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste