Avatar billede sungdk Nybegynder
21. april 2005 - 20:14 Der er 26 kommentarer og
1 løsning

Slettede bruger på min side

Hej med jer!

Jeg troede at jeg havde lavet en sikker side. Skiftede fra COOKIES til SESSIONs.

Her i dag, har jeg så fået omkring 25 mails, hvor brugerne på siden har fået slettet deres brugere.

Jeg er SIKKER på at det ikke er dem som arbejder på siden, så jeg vil gerne have jer eksperter til at undersøge om jeg evt. har lavet et hul :(

www.mopedmanager.dk er adressen. Jeg ved godt at den ikke er sikker for XSS, men kan man via det nemt slette brugere? Og evt. hvordan sikrer jeg mig for den slags hvis det er tilfældet?

På forhånd mange tak!

Mark
Avatar billede jokkejensen Novice
21. april 2005 - 20:20 #1
smid lige et brugernavn og pass..
Avatar billede flash-man Nybegynder
21. april 2005 - 20:24 #2
Ja. Kan du ikke lave en hurtig testbruger til os?
Avatar billede sungdk Nybegynder
21. april 2005 - 20:24 #3
Admin pass: test
Avatar billede sungdk Nybegynder
21. april 2005 - 20:25 #4
jeg kan se at "hackeren" har brugt sidens slette-funktion. Fordi jeg har tjekket databasen, og der er blevet slettet noget andet som denne funktion gør.
Avatar billede jokkejensen Novice
21. april 2005 - 20:29 #5
Du har ikke en fil der hedder noget lignende "slet_bruger.php" der tager et id som parameter og direkte sletter brugeren uden at tjekke om admin rettigheder er der vel ?
Avatar billede flash-man Nybegynder
21. april 2005 - 20:29 #6
ups. kom til at slette test-brugeren :S du bliver lige nødt til at genoprette den...pinligt
Avatar billede sungdk Nybegynder
21. april 2005 - 20:32 #7
Brugeren er oprettet igen :D

Jokkejensen > den tjekker bl.a. som sessin[id] stemmer overens med databasen. SÅ jeg forstår ikke hvordan det går til...

Tag et kig på siden
Avatar billede sungdk Nybegynder
21. april 2005 - 20:35 #8
Jeg smider gerne points for en opklaring af dette mysterium!

Jeg er snart meget træt af at skændes med brugerne.
Avatar billede flash-man Nybegynder
21. april 2005 - 20:37 #9
Hm... Jeg kan ihvertfald ikke finde ud af at slette andre brugere. Men jeg har så heller ikke særlig meget erfaring med programmering, ked af det.

Men det kunne godt se ud som om der er et hul i din kode, et sted i

if ($_GET[action] == "slet") {
// her!
}
Avatar billede sungdk Nybegynder
21. april 2005 - 20:39 #10
flash-man > Så langt kunne jeg også godt tænke selv... Men hvad i den kode?

Men tak for forsøget da!
Avatar billede flash-man Nybegynder
21. april 2005 - 20:40 #11
hehe...godt, godt :)

ehm, hvis du vil må du godt smide det stykke op her, så tror jeg godt nogle af eksperterne her ville kunne gå ind og finde den lige med det samme, men selvfølgelig kan jeg godt følge dig, hvis du er bange for at 'offentliggøre' fejlen. ved jeg ikke...ehm...ja
Avatar billede sungdk Nybegynder
21. april 2005 - 20:43 #12
} else if ($_GET[action] == 'slet') {
mysql_query("DELETE FROM m_brugere WHERE id = '$_SESSION[id]'");
mysql_query("DELETE FROM m_udfordringer WHERE bruger = '$_SESSION[id]' || modstander = '$_SESSION[id]'");
mysql_query("DELETE FROM m_rapport WHERE bruger = '$_SESSION[id]' || modstander = '$_SESSION[id]'");
mysql_query("DELETE FROM m_scootere WHERE bruger = '$_SESSION[id]'");

echo "<b>Slettet!</b><br><br>Din bruger er blevet slettet - Du bliver automatisk logget ud...<br><br>";
echo "<META HTTP-EQUIV='Refresh' CONTENT='2;URL=../logud.php'>";

}
Avatar billede flash-man Nybegynder
21. april 2005 - 20:47 #13
hm...kan ikke umiddelbart se noget.

men ellers, så tænkte jeg på. Jeg kan se man skal være logget ind for at slette, så læg en lille variabel ind der ser hvem der sletter accounten. Altså hvem man er logget ind som. Og hvis det ikke virker, så prøv den med IP'er...dette vil være mere besværligt, men sammenlign IP'er. Altså hvis du nu ser det er den samme IP der bliver ved med at slette forskellige brugere, så ser du hvem der logger ind med denne IP og så HAPS!.

Bare nogle forslag.
Avatar billede flash-man Nybegynder
21. april 2005 - 20:50 #14
der er ikke andre steder i scriptet der ændrer i denne $_SESSION[id]? så'n så man evt. kunne skrive
/ret_profil.php?action=slet&id=andet_id ??
Avatar billede sungdk Nybegynder
21. april 2005 - 20:58 #15
SESSION bliver kun sat ved positiv login...
Avatar billede sungdk Nybegynder
21. april 2005 - 21:35 #16
Hackeren har lige slettet min bruger. Jeg har sat denne kode ind ved sletningen:

$ip = $_SERVER['REMOTE_ADDR'];
mysql_query("INSERT INTO slet_abuse (ip, bruger, session) VALUES ('$ip', '$_GET[bruger]', '$_SESSION[id]')");

I databasen kunne jeg se min EGEN ip? Wtf?
Avatar billede olebole Juniormester
21. april 2005 - 22:56 #17
<ole>

Mon ikke, du selv er 'hackeren'?  :D

/mvh
</bole>
Avatar billede olebole Juniormester
21. april 2005 - 23:17 #18
Gad vide, om du har 'register_globals' sat til 'On' eller 'Off' i din php.ini? Prøv at skrive dette i et PHP-dokument:
<?
print $gnu;
?>

- og kald så siden i en bruser med query-strengen: '?gnu=1234'. Printes der '1234' på skærmen?

Sker det, kommer vi til næste test. Skriv nu dette i PHP-filen:
<?
print( $_SESSION[id] );
?>

- og nu kalder du siden med denne query: '?_SESSION[id]=Fy%20For%20Fanden'  =8-O
Avatar billede olebole Juniormester
21. april 2005 - 23:18 #19
Printer de to eksempler noget på skærmen, har du sat 'register_globals' til 'On' ... ret det omgående!  ;o)
Avatar billede ranglen Nybegynder
21. april 2005 - 23:25 #20
Hvis remote addr peger på din egen ip, har du måske et problem. Måske din hacker har fået listet en trojaner ind på din computer?
Avatar billede olebole Juniormester
22. april 2005 - 00:58 #21
Et sloppy upload-script kan meget vel være kilden. Er stien til en fil med dine MySQL-informationer blevet blotlagt ved en eller anden fejl, er det jo let at lave et dokument, der kan inkludere disse info og eksekvere en hulens bunke skidt, når dokumentet kaldes efter upload.
Checker du ikke *alle* bruger-input - herunder fil-uploads - yderst grundigt, blotter du dit site og din DB.

En yderligere detalje er, at Google jo også cache'er fejl, når disse opstår på sider, den er ved at indeksere. Der ligger tonsvis af god information på Google, hvis man har onde hensigter - og der findes endda programmer specielt til at søge efter den slags sårbarheder via Googles eget API  :)
Avatar billede olebole Juniormester
22. april 2005 - 01:01 #22
PS: Det skal lige siges, at jeg ikke fandt cache'de sårbarheder på Google ved en sådan scan. Den var godt nok ikke for alvor dybdegående - men du har i hvert fald ikke nogen oplagte sårbarheder den vej rundt  ;o)
Avatar billede ranglen Nybegynder
22. april 2005 - 01:04 #23
Men som opretter er gjort opmærksom på, så er sitet sårbar overfor xss angreb. Så session ids kan stjæles i stor stil. Men det forklarer heller ikke det med abuse
Avatar billede ranglen Nybegynder
22. april 2005 - 01:37 #24
"Jeg ved godt at den ikke er sikker for XSS, men kan man via det nemt slette brugere?"

Lad os antage jeg sender en personlig besked til dig med injektet scriptkode, som omdirigerer dig til: http://www.mopedmanager.dk/ret_profil.php?action=slet

Så sletter du din egen profil i det øjeblik du læser beskeden. Det kunne også forklare, at din egen ip optræder i databasen :)
Avatar billede olebole Juniormester
22. april 2005 - 06:45 #25
- og det kan gøres i en skjult iframe, så du ikke ser det  :)
Avatar billede sungdk Nybegynder
22. april 2005 - 13:11 #26
Hej igen!

Tror desværre at vi har haft en "dygtig" hacker inde på siden. Han har sikkert brugt XSS, for på en eller anden måde har han selv kunnet lave sine egne SESSION's.

Jeg fik bare at vide i det andet topic at SESSION var stortset sikre hvad angår egen oprettelse (fake sessions). - Men jeg blev klogere :(

Han har fundet frem til id på forskellige brugere og har den vej slettet deres bruger, og som prikken over i'et - Så fandt han også id på en admin og har nu slettet alt stortset!

Er det kun XSS som kan oprette falske sessions?

Mvh. Labisama som er meget ked af det...
Avatar billede sungdk Nybegynder
23. april 2005 - 20:50 #27
...
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