Es gibt eine Möglichkeit, wenn der Server einen LFI-Exploit enthält: www.owasp.org/index.php/Testing_for_Local_File_Inclusion . 2) Haben Spezielle URL Rewrite-Regel auf diesem Server, die Web-Server anweist, Datei als Klartext zu senden, anstatt sie auszuführen (z.B. somefile.php.txt) Übrigens kann technisch eine HTML-Datei auf einem Server PHP enthalten. Es ist also nicht so, dass PHP-Dateien gefährlicher sind als HTML-Dateien. PHP-Code führt Server-Verarbeitung und dann gibt andere Client-Seite Sachen, die man in einer HTML-Datei wie HTML oder Client-Seite Javascript finden kann. Eine URL kann als Dateiname mit dieser Funktion verwendet werden, wenn die fopen-Wrapper aktiviert wurden. Weitere Informationen zur Angabe des Dateinamens finden Sie unter fopen(). Links zu den Fähigkeiten der verschiedenen Wrapper, Hinweise zu ihrer Verwendung und Informationen zu vordefinierten Variablen finden Sie in den unterstützten Protokollen und Wrappern. Hier ist der komplette Code der Datei “download.php”, die den Download erzwingen. Normalerweise müssen Sie nicht unbedingt eine serverseitige Skriptsprache wie PHP verwenden, um Bilder, Zip-Dateien, PDF-Dokumente, Exe-Dateien usw. herunterzuladen. Wenn eine solche Datei in einem öffentlich zugänglichen Ordner gespeichert ist, können Sie einfach einen Hyperlink erstellen, der auf diese Datei verweist, und wenn ein Benutzer auf den Link klickt, lädt der Browser diese Datei automatisch herunter.

Wenn Sie auf einen Link klicken, der auf eine PDF- oder Bilddatei verweist, wird sie nicht direkt auf Ihre Festplatte heruntergeladen. Es öffnet die Datei nur in Ihrem Browser. Darüber hinaus können Sie es auf Ihrer Festplatte speichern. Zip- und Exe-Dateien werden jedoch standardmäßig automatisch auf die Festplatte heruntergeladen. Sie können erzwingen, dass Bilder oder andere Arten von Dateien direkt auf die Festplatte des Benutzers heruntergeladen werden, indem Sie die PHP readfile()-Funktion verwenden. Hier erstellen wir eine einfache Bildergalerie, die es Benutzern ermöglicht, die Bilddateien mit einem einzigen Mausklick aus dem Browser herunterzuladen. Wenn der Server richtig konfiguriert ist, können Sie keine PHP-Datei herunterladen. Sie wird ausgeführt, wenn sie über den Webserver aufgerufen wird. Die einzige Möglichkeit, zu sehen, was es tut, ist, Zugriff auf den Server über SSH oder FTP oder eine andere Methode zu erhalten. Ich habe diesen Code ausprobiert, aber er gibt immer noch die Datei example.php auf dem Bildschirm aus.

(Server führt es nicht aus, aber das Downloadfeld wird nicht angezeigt.) Ich habe zwar die Datei in “example.txt” umzubenennen, aber das könnte kompliziert sein, und es erlaubt ihnen immer noch nicht zu speichern, ohne vorher auszuwählen/einfügen usw. Der reguläre Ausdruck im obigen Beispiel (Zeile Nr.-8) erlaubt einfach nicht die Dateien, deren Name mit einem Punktzeichen (.) beginnt oder endet, z. B. erlaubt er die Dateinamen wie kites.jpg oder Kites.jpg, myscript.min.js, aber nicht kites.jpg. oder .kites.jpg. Wie kann ich den Link auf example.php setzen, damit er als Datei heruntergeladen wird, die sie “speichern” können, anstatt sie auf dem Server auszuführen? Sie können viel darüber auf php.net/header lesen, aber um einen Download zu erzwingen, können Sie einen Force-Download-Header verwenden. Dieser Kommentar ist erstaunlich, schauen Sie es sich an! 🙂 Wenn wir nun unsere PHP-Datei durchsuchen, die mit dem obigen PHP-Code und der Datei in diesem Pfad enthält, dann werden wir sehen, dass die Datei mit Nachdruck heruntergeladen wurde und der Dateiname so ist, wie wir in der Variablen innerhalb des Codes definiert haben. In diesem Fall sehen wir, dass unser heruntergeladener Dateiname “downloaded_file.zip” ist. Sie können den optionalen zweiten Parameter verwenden und auf TRUE setzen, wenn Sie auch im include_path nach der Datei suchen möchten.

Der Server identifiziert irgendwie eine Datei, die ausgeführt werden soll, anstatt sie herunterzuladen. Sie müssen die PHP-Datei, die Sie herunterladen möchten, von dieser Behandlung ausschließen. Am einfachsten ist es, die Datei in .php.txt umzubenennen. So laden Sie eine PHP-Datei herunter, anstatt sie auszuführen.