- 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
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/