php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.10.2009, 11:18  
Erfahrener Benutzer
 
Registriert seit: 24.03.2009
Beiträge: 124
PHP-Kenntnisse:
Fortgeschritten
DarkPrisma befindet sich auf einem aufstrebenden Ast
Standard wieso ist PHP_SELF unsicher?

Huhu ihrs,

grade hab ich so durch zufall des öffteren gelesen, das PHP_SELF unsicher wäre. wieso das denn?

als beispiel wurden immer solche forms angegeben:
PHP-Code:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <input type="text" name="search">
    <input type="submit" value="Suchen">
</form>
dann soll dort in der url böser code eingeschleußt werden. na und? wo ist denn dann die sicherheitslücke? der xss würde dann doch auf den angreifer selbst ausgeführt werden. also wo ist da das problem?
DarkPrisma ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.10.2009, 11:26  
Neuer Benutzer
 
Registriert seit: 09.02.2009
Beiträge: 18
madfool befindet sich auf einem aufstrebenden Ast
Standard

Das ist hier ganz gut erklärt:

PHP_SELF ist böse! Potentielles Cross Site Scripting (XSS)! | Technik, Gothic und Anderes

Gruß
D.
madfool ist offline  
Alt 26.10.2009, 11:30  
Erfahrener Benutzer
 
Registriert seit: 24.03.2009
Beiträge: 124
PHP-Kenntnisse:
Fortgeschritten
DarkPrisma befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von madfool Beitrag anzeigen
ja das hab ich auch gelesen, jedoch ist das nur für den jenigen ein problem, der diese url aufruft, oder sehe ich das falsch?
DarkPrisma ist offline  
Alt 26.10.2009, 11:32  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.234
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Grundsätzlich hast du natürlich Recht, dass schadhafter Code nur auf den Angreifer selbst wirkt. Schadhaft wird es erst in Kombination mit weiteren Sicherheitslücken, beispielsweise falls ein Angreifer es schafft, zeitgleich einen <base> Tag einzuschleusen, denn PHP_SELF ist ein relativer Pfad und als solcher könnte man ein Formular plötzlich umleiten (wie gesagt in Kombination mit einer weiteren Sicherheitslücke).
Solange immer konkrete Dateien hinter einem Aufruf stecken, hat ein Angreifer wenig Chancen. So ist es aber beispielsweise bei einem modernen Framework so, dass über mod_rewrite versucht wird, generische URLs zu einem Controller u.ä. weiterzuleiten. Und genau hier kann ein Angreifer durchaus bösen Code einschleusen, so dass neben der URL auch beispielsweise das Base-Tag eingeschleust wird.

XSS ist das Prinzip, einen Code so einzuschleusen, dass er beispielsweise beim Klicken auf eine URL wirkt. Die URL veröffentlicht man dann beispielsweise in Phishing-Mails oder im eigenen Forum der Webseite.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih

Geändert von mepeisen (26.10.2009 um 11:35 Uhr).
mepeisen ist offline  
Alt 26.10.2009, 11:34  
Erfahrener Benutzer
 
Registriert seit: 24.03.2009
Beiträge: 124
PHP-Kenntnisse:
Fortgeschritten
DarkPrisma befindet sich auf einem aufstrebenden Ast
Standard

hrm, naja ich seh das jetzt nicht so als sicherheitslücke.... wenn ich die daten des formulars auf einen anderen link umleiten will, kann ich auch mein firebug aufmachen und den link anpassen
DarkPrisma ist offline  
Alt 26.10.2009, 11:43  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.234
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Es geht nicht darum, dass du selbst das bei dir machst. Es geht darum, eine URL zu bauen, mit der man schadhaften Code einschleusen kann. Und diese URL kann man dann verwenden, um beispielsweise Password-Phishing zu betreiben.
99,9% der ermittelten Passwörter werden durch solches Phishing unter Ausnutzen der Sicherheitslücken gewonnen, einfach weil zu viele nicht genau hingucken und schnell einmal einen schadhaften Link angeklickt haben.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 26.10.2009, 11:53  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Zitat:
Zitat von DarkPrisma Beitrag anzeigen
hrm, naja ich seh das jetzt nicht so als sicherheitslücke.... wenn ich die daten des formulars auf einen anderen link umleiten will, kann ich auch mein firebug aufmachen und den link anpassen
Das ist das gleiche wie ungesicherte $_GET/$_POST Variablen.

Der Aufruf erfolgt durch die URL, d.h. du kannst jemandem diese URL zukommen lassen und das Formular "manipulieren". Wenn dieser jemand nicht auf die URL achtet und das manipulierte Formular abschickt, tjoah...

Anderes Beispiel ein Forum wo man ein Benutzerkontrollzentrum hat sowie einen Autologin per Cookie. Ist dort ein Formular mit $_SERVER['PHP_SELF'] angegeben brauchst du nur ein JavaScript einschleusen welches den Cookie des URL-Aufrufenden an DEINEN Server schickt.

Jeder Benutzer des Forums der den "remeber me" Haken gesetzt hat und deinen Link aufruft hat ein Problem. Am besten verschleiert man die URL noch irgendwie das es harmlos aussieht und amcht nen heimlichen Redirect auf die "böse" URL.

Das ist nicht möglich wenn die FormAction statisch eingetragen ist. Dann kannst du in deinem Firebug rumfummeln wie du möchtest.

Wer da die Sicherheitslücke nicht sieht braucht ne Brille.

Geändert von Dark Guardian (26.10.2009 um 11:56 Uhr).
Dark Guardian ist offline  
Alt 26.10.2009, 12:01  
Erfahrener Benutzer
 
Registriert seit: 24.03.2009
Beiträge: 124
PHP-Kenntnisse:
Fortgeschritten
DarkPrisma befindet sich auf einem aufstrebenden Ast
Standard

also ist es wieder nur eine lücke für leute, die eine gefälschte url bekommen
DarkPrisma ist offline  
Alt 26.10.2009, 12:03  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Zitat:
Zitat von DarkPrisma Beitrag anzeigen
also ist es wieder nur eine lücke für leute, die eine gefälschte url bekommen
"Nur" ist gut...
Dark Guardian ist offline  
Alt 26.10.2009, 13:09  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Hier noch das Fachwort dafür: cross site request forgery
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Wie unsicher sind Logins im PHP Code isam2k PHP Tipps 2009 16 20.07.2009 21:59
[Erledigt] mail() unsicher? fliptow PHP Tipps 2009 9 06.01.2009 19:38
Sessions: Nutzerfreundlich == unsicher? histaminchlorid PHP Tipps 2008 6 22.04.2008 19:38
Captcha unsicher? PHP Tipps 2007 7 20.03.2007 16:10

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php url php_self, php_self xss, php_self unsicher, php_self, php unsicher, warum ist php_self unsicher, $php_self, php_self beispiel, http://www.php.de/php-einsteiger/60490-wieso-ist-php_self-unsicher.html, $_server[\'php_self\'] unsicher, php_self böse, php_self ist böse, $_server[\'php_self\']. unsicher, php_self aufruf, php self, php_self formular, warum ist php unsicher, php self aufruf, php self formular, xss php_self

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:49 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum