Page 1 of 1

Wie überzeugt man einen Ungläubigen?

Posted: 2006-06-23 23:08
by braindead
Folgendes ich hab einen Kumpel der sich nicht davon überzeugenlassen will das man kein includes auf willkürliche Dateien zulassen sollte. Er ist der Meinung das ganze wäre ja mit dem openbasedir gesichert. Sprich alles was über $_GET["open"] reinkommt wird ausgeführt. Ohne jetzt die Lücke wirklich ausnutzen zu müssen. Gibts ne Webseite auf der beschrieben wir warum man das auch wenn man die openbasedir drin hat nicht macht?

Re: Wie überzeugt man einen Ungläubigen?

Posted: 2006-06-23 23:14
by Joe User
Sollte ausreichend informativ sein: http://www.google.com/search?hl=en&q=ph ... gle+Search

Zur Demo kannst Du ihn ja mal /dev/zero oder /dev/urandom includen lassen 8)

Re: Wie überzeugt man einen Ungläubigen?

Posted: 2006-06-23 23:17
by daemotron
Es gab immer mal wieder Lücken in der Implementierung von PHP, die open_basedir außer Gefecht gesetzt haben - z. B. http://bugs.php.net/bug.php?id=28632
Mal abgesehen davon verlässt man sich nie auf nur eine Sicherheitsbarriere...

Übrigens: Richtig haarig wird's, wenn innerhalb des virtuellen Hosts Verzeichnisse existieren, in die der Apache-User schreiben darf (z. B. für diverse CMS und Wikis vonnöten). Dann kann man sich einfach nicht mehr drauf verlassen, dass in diesen Verzeichnissen (die ja innerhalb des open_basedir liegen) keine bösartigen Dateien liegen!

Re: Wie überzeugt man einen Ungläubigen?

Posted: 2006-06-24 15:05
by braindead
Joe User wrote:Zur Demo kannst Du ihn ja mal /dev/zero oder /dev/urandom includen lassen 8)
geht ja dank des openbasedirs net ;)
jfreund wrote:in die der Apache-User schreiben darf (z. B. für diverse CMS und Wikis vonnöten). Dann kann man sich einfach nicht mehr drauf verlassen, dass in diesen Verzeichnissen (die ja innerhalb des open_basedir liegen) keine bösartigen Dateien liegen!
*arg* genau nach dem argument hab ich gesucht... ich mein mir persönlich is schon klar das man das net macht, aber er wollte es mir ja net glauben. Mal sehen was er zu den neuen erkenntnissen sagt.

Re: Wie überzeugt man einen Ungläubigen?

Posted: 2006-06-24 16:51
by Joe User
Irgendwie habe Dich missverstanden, sorry.

Re: Wie überzeugt man einen Ungläubigen?

Posted: 2006-06-24 17:39
by lord_pinhead
Erzähl mal genauer was dein Freund includen will. 99% kannst du mit regexp abfangen, wenn es nur html oder php dateien sind, dürfte man mit relativ statischen includes ganz einfach hinkommen

Code: Select all

<?php
if (isset($_GET['filename'])) {
	if (eregi('(http|https|ftp|ftps|[0-9])', ($_GET['filename']))) {
	die;
	} else
	include $_GET['filename'] . ".html";
} else {
	include ("standard.html");
}
?>

link:
<a href="meinedatei" target="_self">meine Datei.html</a>
Das ist allerdings statisch auf die Dateinamenserweiterung .html ausgelegt, aber damit verhinderst du relativ easy das jemand per Get Parameter seine Files einbindet. Allerdings kannst du in dem Beispiel auch nicht mit zahlen arbeiten ;)

Re: Wie überzeugt man einen Ungläubigen?

Posted: 2006-06-24 17:56
by braindead
In dem fall würde der include über ein einfaches Array auch reichen, das ist ja net das Problem. Darum gehts aber auch nicht, ich will ihn ja nur davon überzeugen das er seinen Code änert.

Das waren übrigens net alles probleme, SQL Injektion war auch ohne probleme machbar, durch den Code muss er also nochmal komplett durch ;)