Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(In)security allgemein Sicherheit, Anonymität im Netz. Schutz und Maßnahmen. Prävention und Konzepte. Sicherheitsarchitekturen allgemein und auf der Netzwerkebene.

Sicher vor CrossSiteScripting?

Diskussion: Sicher vor CrossSiteScripting? im Forum (In)security allgemein, in der Kategorie Security Area; Anzeige Hi,wenn ich auf ner Seite PHP-Code: include( 'content/' . $_GET [ path ] '.php' );..  hab bin ich dann ...

Antwort
Alt 08.01.06, 17:57   #1 (permalink)
 
Registriert seit: 23.05.05
Xalon Leistung: Facit NTK
Xalon eine Nachricht über ICQ schicken
Likes: 0
Standard Sicher vor CrossSiteScripting?

Anzeige

Hi,wenn ich auf ner Seite

PHP-Code:
include('content/'.$_GET[path]'.php');.. 
hab bin ich dann sicher,insofern das keiner mehr fremde Seiten includieren kann?

Danke im voraus,
Xalon
Xalon ist offline   Mit Zitat antworten
Alt 08.01.06, 18:36   #2 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
nein dann bist du nicht sicher.

Die einzig sichere Methode ist, die erlaubten Dateinamen in einem Array oder einer DB zu speichern.
Der User übergibt dann eine ID, und dann wird die Datei mit der ID aus dem Array/DB ausgelesen, und der gespeicherte Dateiname wird included.

Alles andere ist Unsicher
Elderan ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 08.01.06, 21:24   #3 (permalink)
Themenstarter
 
Registriert seit: 23.05.05
Xalon Leistung: Facit NTK
Xalon eine Nachricht über ICQ schicken
Likes: 0
Standard

Danke

Xalon
Xalon ist offline   Mit Zitat antworten
Alt 08.01.06, 22:24   #4 (permalink)
 
Registriert seit: 23.10.05
Payne Leistung: Facit NTK
Payne eine Nachricht über ICQ schicken
Likes: 0
Standard

Zitat:
<?PHP
switch ($_GET['blah']) {
case 'seite1'
include('seite1.php');
break;
case 'seite2'
include('seite2.php');
break;
case 'seite3'
include('seite3.php');
break;
}
?>
Ich hätte nun gedacht sowas sei auch sicher, der grenzts ein... Ist zumindestens sicherer wie das oben genannte
Payne ist offline   Mit Zitat antworten
Alt 09.01.06, 21:15   #5 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
das ist das gleiche wie ein Array, von der Art, nur dass es mit einem Array/DB bequemer ist.
Elderan ist offline   Mit Zitat antworten
Alt 09.01.06, 21:27   #6 (permalink)
 
Registriert seit: 13.03.05
BattleMaker Leistung: Facit NTK
Likes: 0
Standard

@Elderan:

Wieso sollte das:
PHP-Code:
<?php include('content/'.$_GET[path]'.php');.. ?>
...so unsicher sein? ?(
Schließlich wird hier bereits verhindert, dass Skripte (natürlich noch nicht interpretiert) von anderen Servern inkludiert werden. Und das ist ja das Schlimmste was passieren kann.
Das einzige was hieran etwas unsicher erscheint ist die Tatsache, dass man sich jede beliebige .PHP-Datei in 'content/' und seinen Unterverzeichnissen anschauen kann, unabhängig ob diese Datei für die Inkludierung erstellt worden ist.


MfG, BattleMaker
BattleMaker ist offline   Mit Zitat antworten
Alt 09.01.06, 23:04   #7 (permalink)
Member of Honour
 
Benutzerbild von ivegotmail
 
Registriert seit: 28.05.03
ivegotmail Leistung: Z3
Likes: 1
Standard

@BattleMaker
das ganze ist unsicher und man kann wesentlich mehr machen als du denkst. siehe hier:
http://www.spotlite.de/blog/archives...e-Wirkung.html
__________________
http://livehabo.hackerboard.de | http://livebb.sourceforge.net
ivegotmail ist offline   Mit Zitat antworten
Alt 10.01.06, 01:50   #8 (permalink)
 
Registriert seit: 02.08.05
crystal Leistung: Facit NTK
Likes: 0
Standard

@ivegotmail & elderan:
naja, nicht wirklich... es ist nur dann unsicher, wenn irgendwelche hohlbratzen von webhostern die möglichkeiten der nutzung von mod_security, openbasedir, seperaten temp-/session-dirs und die sperrung von befehlen wie shell_execute usw. ungenutzt lassen.

und wer hat heutzutage noch einen offenen anonymen ftp-zugang auf seinem server, wenn er darauf kunden hostet?

cYa
crystal ist offline   Mit Zitat antworten
Alt 10.01.06, 17:18   #9 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
Zitat:
naja, nicht wirklich... es ist nur dann unsicher, wenn irgendwelche hohlbratzen von webhostern die möglichkeiten der nutzung von mod_security, openbasedir, seperaten temp-/session-dirs und die sperrung von befehlen wie shell_execute usw. ungenutzt lassen.
auch dann ist es Unsicher.

Immer wenn der User entscheiden kann, welche Dateien includiert werden, ist dies unsicher.
Denn, was viele nicht glauben, viele erstellte Dateien sind einfach nicht dafür geeignet, inkludiert zu werden, denn dadurch werden ja auch Variablen überschrieben.

Bsp:
PHP-Code:
<?php
//Vars initialisieren
$log false;

//Include
include("funktionen.php");
include(
"content/".$_GET['path']."php");


if(
$_SESSION['admin'] == "jo")
   
$log true;


if(
$log == true)
  
//Zeige Adminfunktionen
else
  
//Erst einloggen
?>
Wenn ein Angreifer es jetzt schafft, irgendeine Datei zu finden, in der die Variable $log geändert wird, auf einen Wert != false (z.B. 1,2...), dann kann man sich als Admin einloggen, ohne das Passwort zu haben.

Oder anderes Beispiel:

PHP-Code:
<?php
//Vars initialisieren
$username $_SESSION['username'];
$userid $_SESSION['userid'];

//Include
include("funktionen.php");

//....


//Menü ausgeben
include("content/".$_GET['path']."php");



if(isset(
$username))
  
//Zeige Member-Bereich für $username
else
  
//Erst einloggen
?>
Wenn man jetzt eine Datei findet, in der $username deklariert wird, und diese includiert, so kann man sich einloggen.

Eine Datei kann z.B. so aussehen:

member_search.php:
PHP-Code:
<?php
$username 
$_GET['username'];

$suche "SELECT * FROM users WHERE username = '$username'";
//...
?>

Mit dem Aufruf:
seite_mit_bug.php?username=Admin&path=member_searc h

Könnte ich mich als 'Admin' einloggen.


Man muss jede Datei überprüfen, ob diese inkludiert werden kann.
Wenn der User selbst die Datei bestimmen kann, muss man jede Datei überprüfen, ob diese Problemlos per include() geladen werden kann.
Elderan ist offline   Mit Zitat antworten
Alt 10.01.06, 18:18   #10 (permalink)
 
Registriert seit: 02.08.05
crystal Leistung: Facit NTK
Likes: 0
Standard

@Elderan: mein post war jetzt eher auf die serversicherheit und nicht die scriptsicherheit bezogen; wenn du solche codebeispiele anführst, ist es natürlich unsicher

cYa
crystal ist offline   Mit Zitat antworten
Alt 28.03.06, 19:12   #11 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Zitat:
Original von crystal
@Elderan: mein post war jetzt eher auf die serversicherheit ...
Heute was schönes dazu gelesen.

Also noch mal kurz der Thread zusammengefasst: Ist es ein großes Sicherheitsrisiko wenn der User beliebige Includes in einem Script laden kann, sofern man vorher überprüft ob diese auf dem eigenem Server liegen (also man keinen fremden Code einschleusen kann).

Zitat:
Im zweiten Advisory beschreiben die Entwickler, wie ein Angreifer mit Schreibrechten im TWiki-System durch eine rekursive Include-Anweisung in der editierten Seite innerhalb weniger Minuten den Webserver vollständig lahmlegen kann. Dieser fülle durch die wiederholte Einbindung derselben Seite seinen gesamten Hauptspeicher und erhole sich typischerweise erst nach einem vollständigen Neustart von dem Angriff.

Sicherheitslücken in TWiki vom 28.03.06
Advisory der TWiki-Entwickler
Wie man sieht, sollte man es vermeiden, dass der User Einfluss auf die zu include() ladene Datei hat.
Elderan ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Security Area » (In)security allgemein » Sicher vor CrossSiteScripting?
Themen-Optionen
Ansicht

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

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wie sicher ist WPA? v01d WLAN-Zone 27 07.01.07 12:20
Ist das sicher? [starfoxx] (Web-) Design und webbasierte Sprachen 9 05.10.05 12:41
sicher? r4ptor Hacks & Crackmes 9 25.09.05 22:14
Wie sicher ist PHP? candyman (Web-) Design und webbasierte Sprachen 9 08.01.05 00:37
AES sicher ? Arthi Cryptography & Encryption 1 18.09.04 16:20


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61