Frage:
Gibt es eine Möglichkeit, eine PHP-Datei herunterzuladen, ohne dass sie ausgeführt wird?
Zaibis
2015-09-03 13:51:36 UTC
view on stackexchange narkive permalink

Ich habe kürzlich eine Phishing-Mail von ungewöhnlich schlechter Qualität erhalten. "Bitte melden Sie sich sofort unter dem folgenden Link an, da wir Ihre Bank sind, wissen Sie" -ish. Der Link verweist auf eine nicht überzeugende URL mit .php am Ende.

Ich habe mich gefragt, warum sie möglicherweise ein PHP-Skript verwenden, anstatt nur das Aussehen der angegebenen Seite und zu fälschen Senden der eingegebenen Daten an ein Formular.

Ich möchte nicht wirklich auf den Link klicken, um dies herauszufinden, aber ich würde gerne erfahren, was diese PHP-Datei tun wird. Gibt es eine Möglichkeit, das Skript herunterzuladen, wie Sie es mit dem clientseitigen JavaScript tun könnten?

Oder kann ich nicht auf die PHP-Datei zugreifen, da diese vom Server ausgeführt wird?

Gibt es andere Möglichkeiten, diese Datei und ihr Verhalten ohne Gefahr zu analysieren?

Eine PHP-Datei wird serverseitig ausgeführt und kann nichts mit Ihrem Webbrowser tun. Es kann dynamisch bösartigen clientseitigen Code generieren, der Probleme für Sie verursachen kann.
Der Zugriff auf eine URL, die (scheinbar) auf eine PHP-Datei verweist, unterscheidet sich fast immer stark vom gleichen Vorgang, jedoch für eine HTML-Datei. Ersteres bewirkt, dass der Host-Server die Datei ausführt, während letzteres tatsächlich dazu führt, dass Ihr Computer die Datei herunterlädt.
@MonkeyZeus Ich bin mir dessen bewusst, und genau das wollte ich vermeiden, um zu sehen, wie der Inhalt aussehen wird, ohne dass mein Browser ihn erstellt hat.
@KennyEvitt: Korrigieren Sie mich, wenn ich falsch liege, aber in beiden Fällen wird der Inhalt heruntergeladen, nicht wahr? jsut im ersten Fall generiert das PHP-Formular es dynamisch und es ist nicht statisch auf dem Server gespeichert?!
Wenn Sie vermeiden möchten, dass Ihr Webbrowser potenziell bösartigen clientseitigen Code herunterlädt und ausführt, können Sie die Ausgabe mit "wget" in eine Datei herunterladen, die Sie dann mit Notepad öffnen können. Das einzige mögliche Problem dabei ist, dass der PHP-Code möglicherweise erkennen kann, dass Sie keinen Webbrowser verwenden, sodass lediglich eine leere Datei ausgegeben werden kann. Möglicherweise müssen Sie einige Header senden, die eine echte UA-Zeichenfolge imitieren.
@Zaibis Sie haben größtenteils Recht. Technisch gesehen kann eine URL mit der Endung ".php" dazu führen, dass * beliebiger * Code, nicht nur PHP, ausgeführt wird. Und technisch gesehen konnte ein Server nicht auf eine Anfrage antworten. Beide Szenarien sind äußerst selten.
Bisher hat noch niemand gesagt, dass der Zugriff auf eine URL aus Spam (oder ähnlichem), insbesondere wenn diese eine ID enthält (theoretisch kann eine Adresse ohne ID auch nur an Sie gesendet werden), den Spammer / Phisher über Sie informieren kann tat es und ermutigte ihn, mehr Spam zu senden oder Ihre Adresse an jemand anderen zu verkaufen. Der Server kann so konfiguriert werden, dass bei der Beantwortung einer Anfrage Code ausgeführt wird, der mit ".html" endet.
@BartekChom Selbst der Fall einer ungültigen URL und eines Webservers ohne ausgefallene / böswillige Konfiguration würde für den Spammer funktionieren, da die URL (mit ID) im Zugriffs- oder Fehlerprotokoll endet
> "Der Link verweist auf eine nicht überzeugende URL ..." - es gibt keine Möglichkeit zu sagen, wo der Link tatsächlich verweist. * Der Text des Links sagt absolut nichts * darüber aus, was getan wird. Es kann zum Beispiel mit ".jpg" enden und mit einer ".exe" -Datei antworten oder mit einer HTTP-Umleitung an eine beliebige Stelle antworten. Das Verhalten wird nur durch das Protokoll begrenzt, das durch das erste Wort (http [s], ftp [s] usw.) ausgewählt wird. In jedem Fall kann der Server Ihre IP-Adresse und alles, was Sie an ihn gesendet haben, kennen und speichern.
Sechs antworten:
SPRBRN
2015-09-03 14:03:51 UTC
view on stackexchange narkive permalink

Wenn der Server korrekt konfiguriert ist, können Sie keine PHP-Datei herunterladen. Es wird ausgeführt, wenn es über den Webserver aufgerufen wird. Der einzige Weg, um zu sehen, was es tut, besteht darin, über SSH oder FTP oder eine andere Methode auf den Server zuzugreifen.

Da PHP eine serverseitige Sprache ist, werden dann alle Aktionen auf dem Server ausgeführt Das Ergebnis wird an Ihren Browser gesendet (clientside).

Wenn Sie Angst haben, mit Ihrem System in Konflikt zu geraten, können Sie Virtualbox mit verwenden eine Ubuntu VM und öffnen Sie die Seite von dort. Wenn Sie nach der Installation und bevor Sie gefährliche Dinge tun, einen Snapshot der VM erstellen, können Sie später zu diesem Snapshot zurückkehren und alles rückgängig machen, was das Skript an der VM hätte tun können.

Viele Phishing-Mails verweisen auf Seiten, die auf gehackten Websites mit schwachen Passwörtern gehostet werden. Daher ist es möglicherweise möglich, Zugriff zu erhalten, indem Sie nur diese erraten. Natürlich bekommt man damit nicht zu viel.
Wenn Sie wissen möchten, was der Server liefert, ohne es im Browser Ihrer VM auszuführen, können Sie den HTML-Code mit curl herunterladen. Sie müssten jedoch alle externen Dateien wie CSS, JavaScript und Bilder manuell herunterladen. (Das ist vielleicht keine schlechte Sache.) Genau genommen, obwohl der Server basierend auf den HTTP-Headern etwas anderes liefern könnte. Ist es nicht auch möglich, dass Sie dem Angreifer durch einen Besuch der Adresse die gewünschten Informationen geben: Bestätigung, dass sich eine Person an der Zieladresse befindet? (Ein Bezeichner müsste natürlich in die URL codiert werden.)
Ich kenne einen Webserver, der an einem Punkt einen Fehler hatte, so dass das Anhängen eines Leerzeichens an die URL dazu führen würde, dass ein Skript bereitgestellt wird, anstatt es auszuführen.
* und mache alles rückgängig, was das Skript hätte tun können * => abgesehen von jeglichem Netzwerkverkehr, der über die VM ausgeht, schließlich ist sie mit dem Internet verbunden ...
@GustavoRodrigues Damit bekommen Sie nicht viel, außer für die mögliche Gefängniszeit für den unbefugten Zugriff auf ein Computersystem. Versuchen Sie nicht, auf einen potenziell gefährdeten Server zuzugreifen.
Ist was ich gesagt habe. Übrigens habe ich vielleicht kein Problem damit gesehen, weil dort, wo ich lebe, die diesbezüglichen Gesetze zu neu sind, so dass selbst Fälle, in denen Leute es böswillig getan haben, nicht eingesperrt wurden (zumindest, wie ich aufzeichnen kann).
Andrew Leach
2015-09-04 02:13:43 UTC
view on stackexchange narkive permalink

Wie andere bereits gesagt haben, wird die PHP-Datei serverseitig ausgeführt, es sei denn, der Server ist so schlecht eingerichtet, dass er einfach der Quelle dient.

Wenn Sie untersuchen möchten, an was gesendet wird Verwenden Sie einen Texteditor wie Notepad, um die URL zu öffnen, ohne dass Ihr Client etwas Unangenehmes tun kann. Verwenden Sie also Datei → Öffnen , aber öffnen Sie die URL anstelle einer echten Datei.

Der Server interpretiert die Anforderung und sendet das, was normalerweise an einen Browser gesendet wird. Ihr Texteditor erhält es, aber ein Texteditor kann es nur anzeigen, wenn es bearbeitet werden soll. Es wird niemals in die Nähe eines Browsers oder einer anderen auszuführenden Rendering-Engine gelangen.

Genial, eine solche Einfachheit ist oft schwer vorstellbar.
@TDsouza nicht wirklich, weil es nicht klar macht, dass der serverseitige PHP-Code aus der Datei gelöscht wird, wenn Sie in die PHP-Datei schauen, die ein Client empfängt
PHP-serverseitiger Code wird nicht gelöscht.Ein PHP-Skript steuert die serverseitige Verarbeitung.Serverseitiger Code wird ** überhaupt nicht an den Client gesendet. ** Diese Antwort bietet eine Möglichkeit zu untersuchen, was tatsächlich an den Browser gesendet wird, jedoch ohne das Risiko, clientseitigen Code auszuführen.
Gabor
2015-09-04 14:50:29 UTC
view on stackexchange narkive permalink

Die Datei .php wird auf der Serverseite ausgeführt, sodass der Quellcode leider nicht abgerufen werden kann. Sie können jedoch versuchen, die URL in der Hoffnung zu manipulieren, dass der Systemadministrator einen Fehler gemacht hat.

Wenn ein Benutzer http://www.example.com/index.php generiert der Webserver die HTML-Antwort, indem / usr / bin / php die Datei index.php aus / var / www / html ausführt .

Webserver sind normalerweise so konfiguriert, dass nur .php -Dateien ausgeführt werden, sodass .jpg oder andere Dateitypen wie gewohnt bereitgestellt werden.

Wenn ein vergessener Systemadministrator zu Sicherungszwecken eine Kopie der Datei .php erstellt hat, können Sie die Kopie möglicherweise abrufen, ohne von / usr / bin / php ausgeführt zu werden code>

Wenn der Systemadministrator eine Kopie als /var/www/html/index.php.bak erstellt hat, können Sie den Quellcode unter http: //www.example.com/index.php.bak mit Ihrem Browser.

Das Auffinden dieser verbleibenden Dateien ist eine mühsame Aufgabe. Daher sollten Sie sich die automatisierten URL-Fuzzing-Tools ansehen .

Schließlich empfehle ich die Verwendung von curl , um diese Experimente durchzuführen, da JavaScript oder Flash auf Ihrem Computer nicht ausgeführt werden.

Ich habe einmal erfolgreich den Trick "Emacs-Backup" verwendet - Anhängen von ~ an den Dateinamen, z. `` http: // www.example.com / index.php ~ ``. Ich denke, das liegt daran, dass der Autor des Angriffs SSH-Zugang erhalten hat und entweder Vi oder Emacs zur Hand hatte und sich im Emacs-Lager befand. Und ich habe nicht gesehen, dass viele Apache-Server so konfiguriert sind, dass sie die Bereitstellung von '* ~' - Dateien verweigern.
Christian Strempfer
2015-09-04 15:34:40 UTC
view on stackexchange narkive permalink

Nein können Sie nicht, da PHP auf dem Server ausgeführt wird. End.

  1. Der Code muss nicht abgerufen werden, da er nicht auf Ihrem Computer ausgeführt wird und daher kein Sicherheitsrisiko für Sie besteht.
  2. PHP wird Websites wie jede andere bedienen, so dass es keine PHP-spezifische Antwort gibt.

    Wenn Sie an einer allgemeinen Antwort interessiert sind, lesen Sie Wie überprüfe ich einen verdächtigen E-Mail-Anhang sicher? Die Antworten gelten auch für das sichere Öffnen von Websites.
  3. ol>
Clueless_captain
2019-11-13 21:48:39 UTC
view on stackexchange narkive permalink

Es gibt eine Möglichkeit , wenn der Server einen LFI-Exploit enthält: https://www.owasp.org/index.php/Testing_for_Local_File_Inclusion.

Wenn der Server einmal richtig konfiguriert ist, sollten PHP-Dateien nicht heruntergeladen werden können.

Ich hatte kürzlich das Vergnügen, dies in einem von mir geerbten Projekt zu patchen, weshalb ich es weiß darüber. Man könnte PHP-Skripte direkt herunterladen, indem man den Namen des gewünschten Skripts über den $ _GET [] gibt, der zählen würde.

Um ehrlich zu sein, müssten Sie etwas Glück haben, dass ein Exploit möglich ist, und Sie müssten auch herausfinden, wie das Dateisystem des Servers strukturiert ist (dh wie ist der relative Pfad des Skripts? Sie interessieren sich für das Skript mit der LFI-Sicherheitsanfälligkeit.) Wenn Sie also den Server erkunden möchten, verwenden Sie eine Sandbox / VM. Sie haben möglicherweise Glück, wenn der Server tatsächlich schlecht konfiguriert ist, wie aus dem Kommentar von Gustavo Rodrigues hervorgeht.

barlop
2016-07-06 01:04:55 UTC
view on stackexchange narkive permalink

Sie können nicht über HTTP, da

A) Der in die Datei geschriebene PHP-Code vom http-Server aus der Datei gelöscht wird, bevor er an den http-Client gesendet wird

Ein HTML-Formular verweist also möglicherweise auf blah.php, das ein PHP-Snippet enthält, einen Code, der von PHP-Tags umgeben ist und prüft, ob das übermittelte Passwort = 1234 ist. Wenn Sie jedoch blah.php verwenden, wird dieser Code nicht angezeigt. (Selbst wenn der PHP-unterstützende Webserver Sie direkt blah.php abrufen ließ, ohne Sie umzuleiten, um eine andere Datei zu erhalten. Es ist nicht wirklich die blah.php auf dem Server, die Sie erhalten). Es ist blah.php, das vom Server verarbeitet wird, wobei der PHP-Code entfernt und durch den ausgegebenen PHP ersetzt wird. Oder mit welchem ​​clientseitigen Code (HTML / Javascript) sollte der ermittelte PHP-Code angezeigt werden.

und

B) Das PHP-Modul des HTTP-Servers führt jedes PHP aus und produziert Die resultierende Datei, die an den Client gesendet werden soll.

Technisch gesehen kann eine HTML-Datei auf einem Server PHP enthalten. Es ist also nicht so, dass PHP-Dateien gefährlicher sind als HTML-Dateien. PHP-Code verarbeitet den Server und gibt dann andere clientseitige Inhalte aus, die in einer HTML-Datei wie HTML oder clientseitigem Javascript enthalten sind.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...