[frage] wieso führt apache *.php.123 aus?

heyho

ein forum wo ich öftersmal unterwegs war, hatte nen uploadscript was standardmäßig allesmögliche an code-enthaltenden files rauskickte.
jetzt wurde kürzlich ne shell mit namen shell.php.1 hochgeladen - wieso wird die von der standardconfig vom apache + php5 ausgeführt?
das ist mir vollkommen rätzelhaft.

ich habe das auch mal auf meinem eigenen server getestet - und siehe da - der führt das auch aus. welchen grund gibts dafür?
ist das einfach nur nen bug oder wie muss man das verstehen?
 
re

Täte mich auch interessieren, da ich das hier auch nachvollziehen kann...
Code:
Apache/2.2.3 (Ubuntu) PHP/5.2.1 Server at 127.0.0.1 Port 80

MfG
 
Schwer zu sagen, wenn man eure Konfiguration nicht sieht.
ihr solltet daher mal eure /etc/apache(2?)/httpd.conf bzw. apache2.cfg pasten.
 
Original von Express
*.php.gif geht doch auch, oder?

Nein, das geht nicht, da fuer .gif im Normalfall ein anderer MIME-Type definiert ist und auch der Browser es falsch interpretiert. Man bekommt dann die Meldung

Code:
The image ?http://www.domain.de/test.php.gif? cannot be displayed, because it contains errors.

Die Ursache kann ich mir eigentlich nur wie folgt erklaeren:

Wenn der Apache eine Datei einliest, sucht er im Dateinamen nach dem letzten Punkt im Dateinamen und schaut, ob er eine passende AddType-Direktive fuer den nach dem Punkt folgenden String findet. Ist das nicht der Fall, schaut er (den Dateinamen von hinten aufraeufelnd) nach einem weiteren Punkt. Steht dann hinter diesem ein String, den er als Typ kennt, interpretiert er die Datei entsprechend. Nur wenn keinerlei bekannte "Endung" im Dateinamen vorkommt, wird diese als plaintext ausgegeben.

Ist zwar nur eine Vermutung, aber die einzig logische, die mir gerade einfaellt.

@metax.: Ich habe gerade diverse Konfigurationen und AddType-Definitionen durchprobiert. Es bleibt immer das gleiche.
 
Hallo,
hmm die Lücke (?) ist mir neu und unter XAMPP wird eine name.php.dat auch als PHP Datei ausgeführt.

Was lernt man daraus:
Niemals den User erlauben, eine hochgeladen Datei aufzurufen.
Diese müssen in einem geschützten Ordner (deny from all) liegen und mittel PHP-Script kann man die dem User dann zum Download anbieten.
Der direkte Aufruf (anhang/id-1.php.dat) sollte nie möglich sein.
 
Hm, ich habe ebenfalls etwas auf meinem Server und etwas lokal getestet und ich komme zu dem gleichen Ergebnis - auch mit anderen Dateitypen.
So wird eine leere Datei "test.jpg.1" vom Apache server mit dem Mime-Typ image/jpeg geliefert.
Im Netz habe ich auch nichts zu diesem (doch sehr komischen) Feature gefunden.
Ich vermute, es hat etwas mit Content-Negotiation zu tun - oder mit dem Feature, mehrsprachige Seiten über Endungen wie index.htm.de anzusprechen.
Jedenfalls würde ich es gerne auf meinem Server abschalten, da es doch ein erhebliches Risiko darstellt, wenn man nicht auf passt.
Falls jemand noch eine Idee hat, nur her damit.

mfg, metax.
 
hm für weiterführende infos wäre ich auch sehr offen :)

aber ich finds verdammt gefährlich, denn alle uploadscripts die nur mit ner blacklist statt ner whitelist arbeiten sind extremst gefährdet!
 
Huch, das gefällt mir jetzt aber auch nicht. Gerade im Hinblick auf mein Forum. Da habe ich das einbinden von externen Avataren erlaubt.

Wenn nun einer eine [shell.php.gif] da verlinkt, stellt das ganze dann eine Bedrohung dar?

Ich denke zwar nicht, da das ganze ja blos ein src= für ein image Tag ist, aber wer weis...

Gruss
IsNull
 
Original von IsNull
Huch, das gefällt mir jetzt aber auch nicht. Gerade im Hinblick auf mein Forum. Da habe ich das einbinden von externen Avataren erlaubt.

Wenn nun einer eine [shell.php.gif] da verlinkt, stellt das ganze dann eine Bedrohung dar?

Ich denke zwar nicht, da das ganze ja blos ein src= für ein image Tag ist, aber wer weis...

Gruss
IsNull

Das geht zum Glück nicht, so wie Bitmuncher es erklärt hat :P
 
Hallo,
@IsNull:
Das wird nix.
Entweder wird die shell auf dem fremden Server ausgeführt (_externes_ Avatar) aber höchstwahrscheinlich wird der php Code vom Browser nachgeladen, dieser wird versucht als gif zu interpretieren was in einem Fehler endet.
Dein Server hat damit nix zu tun.
 
Dann deaktiviert doch das parsen von .php.* Dateien:

Code:
AddType application/x-httpd-php .php
AddType text/plain .php.

funktioniert wunderbar ;)

/EDIT:
oder erzwingt im AvatarenVerzeichnis zB einen Typ:
Code:
<Location /avatar>
  ForceType image/jpeg
</Location>

MFG - Keks :)
 
aber höchstwahrscheinlich wird der php Code vom Browser nachgeladen, dieser wird versucht als gif zu interpretieren was in einem Fehler endet.
Habe ich mir auch gedacht, dass dann einfach so ein <img src=../boese/shell.php.gif> im Html auftaucht und nicht interpretiert wird. Wollte aber trotzdem sicher gehen, und hier mal nachfragen. Jedenfalls bin ich jetzt beruhigt :)

Gruss
IsNull
 
Original von keksinat0r
Dann deaktiviert doch das parsen von .php.* Dateien:

Code:
AddType application/x-httpd-php .php
AddType text/plain .php.

funktioniert wunderbar ;)

/EDIT:
oder erzwingt im AvatarenVerzeichnis zB einen Typ:
Code:
<Location /avatar>
  ForceType image/jpeg
</Location>

MFG - Keks :)

das is ne gute lösung ;) danke!
 
Hallo,
ich kann nur der Erklärung von Bitmuncher zustimmen. Ich kenne diese "Lücke"/Feature schon seit längerer Zeit. Schaut euch diesen Abschnitt
----------------------------------------------------------------------------
--[< Apache - Unknown Mime Type Trouble >]----------------------------------
----------------------------------------------------------------------------
If you have a file "whatever.php" the Apache webserver treats it as a php file.
If you have a file "whatever.jpg" the Apache treats it as an image.
If you have a file "whatever.php.jpg" it is also treated as an image because the
extension is ".jpg" and the Apache knows this mime type..
The information about the extensions and mime types are saved in the ".../conf/mime.types".
What do you expect does the webserver with this file: "whatever.php.tbs".
He handles it as a php file!
The reason for that is that the Apache doesn't find the extension ".tbs" in the list
and therefore choses ".php" as extension.
I think this is wierd and unnecessary but it might help us to place our php code
somewhere at the server.
So keep it in mind!
mal an.
Der Ausschnitt ist aus diesem Tutorial:
http://bright-shadows.net/tutorials/tbs_wiwa.txt
 
Zurück
Oben