Avatar billede sungdk Nybegynder
12. april 2005 - 20:01 Der er 23 kommentarer og
2 løsninger

Hacket, hvor er fejlen?

Hej med jer!

Det er en RIGTIG sørgelig dag! Min nye side med en masse brugere på er lige blevet "hacket". På en eller anden måde har han fundet ud af hvordan han har kunnet slette brugere.

Min side er bygget op med PHP støttet af mySQL og bruger en masse COOKIE.

Jeg vil bruge dette spørgsmål, til at finde ud af hvordan han evt. har gjort, og så det ikke gentager sig.

Jeg tror at personen har brugt noget kode inde i min egen kode. Bl.a. kunne jeg se at han havde prøvet at oprette en bruger med navnet: "Berit<iframe src=http://www.mopedmanager.dk/ret_profil.php?action=slet width=0 height=0 frameborder=0></iframe>"

Alt i alt har jeg ikke sikret min side med ingen html koder i inputs osv. Men kan det så stadigvæk være muligt at "hacke" siden selvom jeg IKKE har det?

Håber der er nogle med lidt viden indenfor dette sørgelige emne :(

Siden er forresten: www.mopedmanager.dk

Tak!

Mark
Avatar billede busschou Praktikant
12. april 2005 - 20:07 #1
Hvis man ved en querystring kan slette en bruger blot ved at sætte action=slet og evt et brugernavn eller noget..så er det jo ikke godt.
Men tror næsten vi må se noget mere kode for at kunne vurdere det
Du har da i hvert fald sikret login for sql injection kan jeg se
Avatar billede sungdk Nybegynder
12. april 2005 - 20:12 #2
Jeg har hans ip... og jeg kan se at personen sidder bag en proxy eller noget. Lige pt. benytter han nemlig en amerikansk udbyder: cox-internet.com. Og han har skiftet flere gange!

ANg. queystring. Så kan man ikke bare skrive slet. For fx. ved sletningen af sin profil, så sletter den kun den profil hvor id = $_COOKIE[id]. Hvis du forstår.

Har lange scripts hvor der er mange forskellige funktioner. Derfor det er bedre at forklare det sådan
Avatar billede busschou Praktikant
12. april 2005 - 20:13 #3
Oki doki så er ikke der den hænger.... med mindre han selv opretter cookies
Der ville det jo nok være mere sikkert at gemme id i en session hver gang der logges på
Avatar billede sungdk Nybegynder
12. april 2005 - 20:15 #4
Cookies er de ikke unikke til siden?

Kan han godt selv have gættet sig til cookienavnet, og så selv lave dem fra sin egen localhost?
Avatar billede dennismp Nybegynder
12. april 2005 - 20:15 #5
Det er jo nemt at sætte min browser op til at returnerer et vilkårlig id - da "klienten (browseren)" jo sender id'et kan du ikke stole på de informationer.

Så det er jo bare

sæt id i cookie til 1
kald slet url id1
sæt id i cookie til 2
kald slet url for id2

osv.
Avatar billede avminarm Juniormester
12. april 2005 - 20:16 #6
kan det være sql injection?
Avatar billede sungdk Nybegynder
12. april 2005 - 20:23 #7
dennismp > Forstår ikke lige hvad du mener. Kan du evt. give et eksempel. Og gider du evt. prøve at se om det kunne være sådan han gør det mod min side?

Tak
Avatar billede dennismp Nybegynder
12. april 2005 - 20:50 #8
jeg vil af gode grunde ikke vise hvordan det gøres :)

Men det er lykkes mig at oprette en bruger og efterfølgende slette denne uden at være logget ind.

Ikke for at skræmme dig, men jeg ville nok tage siden offline og få fixet problemet. Som allerede forslået skal du "bare" bruge $_SESSION istedet for $_COOKIE
Avatar billede busschou Praktikant
12. april 2005 - 20:52 #9
Rart at nogen kunne bekræfte min anelse :o)
Avatar billede dennismp Nybegynder
12. april 2005 - 20:59 #10
Er ikke sikker på at labisama syntes det er rart :)
Avatar billede busschou Praktikant
12. april 2005 - 21:03 #11
Hehe nååårrrrhh nej :p
Selvfølgelig er det ikke rart på den måde
Jeg vidste bare det kunne lade sig gøre. Men jeg har aldrig prøvet gøre det selv. Så kunne jo ikke forklare hvordan.
Anyways så er intet jo 200% hackerfrit
Men jo mere cookies som kan laves til sessions desto bedre i mine øjne
Avatar billede ranglen Nybegynder
12. april 2005 - 21:06 #12
at gætte sig til indholdet i en cookie er ikke så svært, skriv i adresselinien når du står på sitet:

java script:alert(document.cookie)

at ændre indholdet er lige så nemt. Det er ingen hemmelighed
Avatar billede ranglen Nybegynder
12. april 2005 - 21:08 #13
Du har faktisk gjort det skræmmende nemt at overtage andres identitet. Måske du bør lukke midlertidigt ned?
Avatar billede dennismp Nybegynder
12. april 2005 - 21:08 #14
labisama; grunden til at problemet kan løses med session istedet for cookies er måden session virker på.

Sessions (kan og gør normalt) lave en cookie på brugeren computer. I den cookie er der et unikt id. Det er det eneste der gemmes hos brugeren. Han kan ændre den ja, men da id'et er ret langt og tilfældigt generert vil han med stor sandsynligvis bare ramme en tom session (som virker som om at han er logget ud).

De oplysninger du gemmer i $_SESSION[] bliver gemt i en fil på en server. Filnavnet er det unikke id, hvis man ændre det - så findes filen ikke. Og man har derved intet vundet. Brugeren kan så ikke ændre indholdet af filen (med mindre han har direkte adgang til serveren. og det har man jo normalt ikke). Dermed har du gemt dine oplysninger uden at være bange for at han kan rette i fx. id'et.

Hvis du skal skifte fra cookies til session skal du på alle sider der bruger cookies:
- tilføje en session_start() som det første dit phpscript laver
- erstatte setcookie('navn',værdi) med $_SESSION['navn'] = værdi;
- erstatte $_COOKIES['navn'] med $_SESSION['navn']
- hvis du skal sette informationer fra session: unset($_SESSION['navn']);
- hvis du skal logge ud, session_destroy() (sletter alle informationer)

Jeg håber det hjælper dig.
Avatar billede dennismp Nybegynder
12. april 2005 - 21:11 #15
Jeg er enig med ranglen, især nu hvor det er offentlig hvordan det kan gøres (på denne side).

Du er velkommen til at kontakte mig via email, hvis jeg kan hjælpe med at teste. Men nu skal jeg først se film :)
Avatar billede busschou Praktikant
12. april 2005 - 21:12 #16
Synes på en måde det er dumt at skrive hvordan sådan noget kan gøres her
Men synes omvendt at hvis I finder andre problemer over mail så vil jeg da meget gerne høre om dem
Måske vi andre kunne lære noget og måske havde samme hul uden vide det jo
Avatar billede sungdk Nybegynder
12. april 2005 - 21:17 #17
Hej!

I har hjulpet mig RIGTIG meget! Tænkte nok det var cookies som var problemet :(

MEN! er det sikkert nok at bruge COOKIE til bare at gemme brugernavn og adgangskode til login på forsiden?

Når man så trykker login, så vil login.php lave "cookies" om til SESSION?, eller kan man fuske der?

Ved ikke lige hvem der skal have point. Man kan jo ikke dele mere :(
Avatar billede ranglen Nybegynder
12. april 2005 - 21:18 #18
busschou, jeg ved nu ikke om det ikke bør nævnes. I min browser kan jeg sågar under indstillinger, gå ind og ændre indholdet i mine cookies. Det er der ikke så hacking over..
Avatar billede olebole Juniormester
12. april 2005 - 21:28 #19
<ole>

Det er et rigtig godt sted at skrive det  ;o)

For det første er det ganske elementært - så man må formode, de fleste allerede ved det - for det andet kan det forhåbentligt lære andre, hvordan man helt basalt beskytter sine (og måske andres følsomme person-) data.

/mvh
</bole>
Avatar billede sungdk Nybegynder
12. april 2005 - 21:31 #20
Kan jeg lige få svar på mit spørgsmål deroppe? ^

Hvis i forstod det? :)
Avatar billede dennismp Nybegynder
12. april 2005 - 23:40 #21
Hvis du bare antager at brugeren kan rette i brugernavn/kodeord så det ikke er det du forventer (korrekt brugernavn/kodeord).

Hvis det er til dit auto-login, så skal du bare læse værdierne fra cookie'n og se om det passer (tjekke det op imod databasen). Så er det fint nok.

I princippet kan du stole ligeså lidt på cookies som du kan på hvad der er i en form/links (POST og GET).
Avatar billede sungdk Nybegynder
13. april 2005 - 00:46 #22
Tak!

Jeg er blevet meget klogere og er gået igang med at lave siden om med Session. MEGET besværligt! :)

Hvem har fortjent points? Dennis?
Avatar billede dennismp Nybegynder
13. april 2005 - 01:03 #23
Det burde ellers være rimelig lige til, når du først har lært SESSION at kende. Selvf. er det en lidt øv-ting at lave (man laver jo ikke noget nyt, man får bare det gamle til at virke).

Men det er da fedt at du er blevet klogere - bare lidt sur måde at få det lært på.

I dit indledende spørgsmål spurgte du ikke noget om pointfordelingen, så det må du selv finde ud af :)
Avatar billede busschou Praktikant
13. april 2005 - 07:30 #24
Smider også et svar... var jo den første som forslog gå fra cookies til sessions ;o)
Men du finder selv ud af fordelingen :o)
Avatar billede sungdk Nybegynder
13. april 2005 - 14:59 #25
Tak endnu engang, og håber i er tilfredse med points :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester