Transcript
  • 1. > >webHacks am Beispiel PHP & MySQL Referent:Torben Brodt Datum: 26.03.2009 Veranstalter: plista.com GmbH

2. webHacks>Inhalt

  • bersicht 3. Paris Hilton Bug 4. XSS 5. SQL Injections

5.Session Stealing 6. File Inclusion 7. Technikausblick 8. Literatur

  • bersicht 6. Paris Hilton Bug 7. XSS 8. SQL Injections

Referent:Torben Brodt Datum: 26.03.2009 Veranstalter: plista.com GmbH 9. webHacks>bersicht

  • BufferOverflows und andere Schwachstellen, wie man sie von Desktopapplikationen kennt sind im Web kaum kritisch. 10. Aktuelle Lcken in Websoftware, siehe Graph [1] 11. Oft in Kombination genutzt

1 /8 12. webHacks>Paris Hilton Bug

  • Paris' Account wurde gehackt, weil sie bei der "Passwort-vergessen-Frage" die Frage nach dem Namen ihres Hundes whlte. 13. Dieser lsst sich mit einfacher 14. Google Recherche herausfinden 15. Mangelndes Sicherheitsbewusstsein 16. gibt es sowohl auf Konsumenten 17. als auch auf Endkunden-Seite 18. Beispiele u.a. Paymentanbieter

2 /8 19. webHacks>XSS (1)

  • XSS = Cross Site Scripting 20. Angreifer manipuliert Webseite mit Client-Script (JS,...) 21. z.B. durch search.php?q= 22. Nutzen? Session ID kann ausgelesen werden dadurch kann Person2 die Identitt annehmen 23. Beispiel

3 /8

  • document.write(")

24. webHacks>XSS (2)

  • Den Login einer anderen Seite erfahren 25. Dort kann davon ausgegangen werden dass der benutzer noch angemeldet ist 26. Beispiel: studivz gruppenseite verlinkt auf eigene Seite und wird von dort zurck geleitet 27. Beispiel

3 /8

  • document.location='http://studivz.net/?supersearch=document. write("")'

28. webHacks>SQL Injections (1)

  • Geschtzte Informationen auslesen 29. Beispiel: Produktkatalog

4 /8 $res = mysql_query('SELECT titel FROM category WHERE name = '.$_GET['q'].''); while($row = mysql_fetch_array($res)) { printf("

%s

", $row['titel']); } katalog.php?q= UNION SELECT password AS titel FROM users WHERE a = a $res = mysql_query(...WHERE name = '.mysql_real_escape_string($_GET['q']).''); while($row = mysql_fetch_array($res)) { printf("%s", $row['titel']); } SAFE 30. webHacks>SQL Injections (2)

  • Geschtzte Informationen auslesen 31. Beispiel: Produktkatalog (mit Integer)

4 /8 $res = mysql_query('SELECT titel FROM category WHEREid = '.mysql_real_escape_string($_GET['q'])); while($row = mysql_fetch_array($res)) { printf("

%s

", $row['titel']); } katalog.php?q=0 UNION SELECT password AS titel FROM users $res = mysql_query('SELECT titel FROM category WHERE id = '.intval($_GET['q'])); SAFE 32. webHacks>SQL Injections (3)

  • Beispiel: Newsletter abbestellen 33. Wre die 10 eine austauschbare Variable knnte man die Aktion durch 1 OR 1 fr alle bernehmen

4 /8 mysql_query('UPDATE user SET newsletter = '.$_REQUEST['news'].' WHERE userid = 10'); newsletter.php?news=0,pwd=(SELECT pwd FROM user WHERE userid=1) 34. webHacks>Session Stealing

  • Szenario:
    • Angreifer ruft Anwendung als anonymer Nutzer und erhlt Session 123. 35. Angreifer gestaltet damit speziellen Link. Diesen lsst er dem Opfer zukommen. 36. Opfer verwendet Link, um zur Anwendung zu gelangen. Meldet sich an. 37. Anwendung bernimmt Sessionkennung und ordnet dieser den korrekt Login zu 38. Auch der Angreifer kann diese Session nutzen, da HTTP zustandslos
  • Demo:Session VS Referer

5 /8 39. webHacks>File Inclusion

  • Dateiname kann nullterminiert werden 40. Dadurch wird der Regex passiert, aber der Dateiname im Filesystem wird abgeschnitten

6 /8 if(preg_match('/.(png|gif|jpg)$/', $_FILES['img']['name'])) { move_uploaded_file($_FILES['img']['tmp_name'],'upload/'.$_FILES['img']['name']); echo "upload success"; } POST Request Manipulation Content-Disposition: form-data; name="img"; filename="hack.php.png" Content-Type: image/jpeg Content-Transfer-Encoding: binary 41. webHacks>Technikausblick

  • Phishing? E-Mail Header Manipulation? 42. Vorsicht durch Versionsunterdrckung. 43. Wie Anonym bleiben?
    • google link einbauen 44. onion ring network (tor) 45. remote login (vpn) 46. Andere unsichere Rechner benutzen
    • --- THE END --- 47. Diskussion + Fragen + Erfahrungen

7 /8 48. webHacks>Literatur 8 /8

  • [1] http://www.easy-coding.de/vortrag-sicherheitsluecken-in-websoftware-t4236.html 49. [2] http://www.easy-coding.de/php-und-sicherheit-teil-1-sessions-t6000.html 50. [3] http://www.erich-kachel.de/

Recommended