Ich muss entweder eine Datei finden, in der die Version codiert ist, oder eine Möglichkeit, sie über das Web abzufragen, damit ihre Version angezeigt wird. Der Server wird auf einem Host ausgeführt, der mir keinen Befehlszeilenzugriff gewährt, obwohl ich den Installationsort über FTP durchsuchen kann.
Ich habe HEAD ausprobiert und bekomme keine Versionsnummer gemeldet.
Wenn ich versuche, eine fehlende Seite zu erhalten, um eine 404 zu erhalten, wird sie abgefangen und eine Bestandseite zurückgegeben, die keine Serverinformationen enthält. Ich denke, das deutet darauf hin, dass der Server gehärtet ist.
Immer noch nicht näher ...
Ich habe eine PHP-Datei wie vorgeschlagen erstellt, kann sie jedoch nicht durchsuchen und den URL-Pfad, der sie laden würde, nicht genau ermitteln. Auf jeden Fall bekomme ich viele Nachrichten mit Zugriffsverweigerung und dieselbe 404-Seite. Ich tröste mich mit dem Wissen, dass der Server ziemlich robust geschützt ist.
Antworten:
Die Methode
Stellen Sie eine Verbindung zu Port 80 auf dem Host her und senden Sie ihn
Darauf muss zweimal Wagenrücklauf + Zeilenvorschub folgen
Sie werden so etwas zurückbekommen
Sie können dann die Apache-Version aus dem Server: -Header extrahieren
Typische Werkzeuge, die Sie verwenden können
Sie können das HEAD-Dienstprogramm verwenden, das mit einer vollständigen Installation der LWP- Bibliothek von Perl geliefert wird , z
Oder verwenden Sie das Curl- Dienstprogramm, z
Sie können auch eine Browser-Erweiterung verwenden, mit der Sie Server-Header anzeigen können, z. B. Live-HTTP-Header oder Firebug für Firefox oder Fiddler für IE
Mit Windows festgefahren?
Schließlich. Wenn Sie unter Windows arbeiten und nichts anderes zur Verfügung haben, öffnen Sie eine Eingabeaufforderung (Startmenü> Ausführen, geben Sie "cmd" ein und drücken Sie die Eingabetaste), und geben Sie diese ein
Geben Sie dann ein (vorsichtig, Ihre Charaktere werden nicht zurückgesendet)
Drücken Sie zweimal die Eingabetaste, um die Server-Header anzuzeigen.
Andere Methoden
Wie von cfeduke und Veynom erwähnt, kann der Server so eingestellt sein, dass er begrenzte Informationen im Server: -Header zurückgibt. Versuchen Sie, ein PHP-Skript mit diesem Inhalt auf Ihren Host hochzuladen
Fordern Sie die Seite mit einem Webbrowser an und Sie sollten die dort gemeldete Apache-Version sehen.
Sie können auch versuchen, PHPShell zu verwenden, um sich umzuschauen , und einen Befehl wie
quelle
Stuck with Windows?
, ich habe versucht zu senden,HEAD
aber es zeigtHTTP/1.1 503 Service Temporarily Unavailable
httpd -v
gibt Ihnen die Version von Apache, die auf Ihrem Server ausgeführt wird (wenn Sie über SSH / Shell-Zugriff verfügen).Die Ausgabe sollte ungefähr so aussehen:
Wie bereits vorgeschlagen, können Sie dies auch tun
apachectl -v
, um die gleiche Ausgabe zu erhalten, die jedoch von mehr Linux-Varianten unterstützt wird.quelle
apache2
nichthttpd
In seltenen Fällen ist ein gehärteter HTTP-Server so konfiguriert, dass er keine Serverinformationen oder irreführende Serverinformationen liefert. In diesen Szenarien können Sie Folgendes hinzufügen, wenn auf dem Server PHP aktiviert ist:
in einer Datei und navigieren Sie dazu und suchen Sie nach dem
Eintrag. Dies ist anfällig für den gleichen zunehmenden Mangel an Informationen / irreführend, obwohl ich mir vorstellen würde, dass es nicht oft geändert wird, da diese Methode zuerst den Zugriff auf den Computer erfordert, um die PHP-Datei zu erstellen.
quelle
Warnung: Einige Apache-Server senden bei Verwendung von HEAD nicht immer ihre Versionsnummer, wie in diesem Fall:
Wenn PHP installiert ist, verwenden Sie einfach den Befehl php info:
quelle
phpinfo()
zeigt auch nicht immer die Apache-Version an, zumindest nicht bei Verwendung von CGI / FastCGI.Die Version der Versionsinformationen, die von einem Apache-Server ausgegeben werden, kann durch die ServerTokens-Einstellung in seiner Konfiguration konfiguriert werden.
Ich glaube, es gibt auch eine Einstellung, die steuert, ob die Version auf Serverfehlerseiten angezeigt wird, obwohl ich mich nicht erinnern kann, was sie auf den Kopf gestellt hat. Wenn Sie keinen direkten Zugriff auf den Server haben und der Serveradministrator kompetent ist und nicht möchte, dass Sie wissen, welche Version sie ausführen ... Ich denke, Sie sind möglicherweise SOL .
quelle
Telnet zum Host an Port 80.
Art:
Es ist eine Art HTTP-Anfrage, aber sie ist nicht gültig. Der 500-Fehler, den Sie erhalten, gibt Ihnen wahrscheinlich die gewünschten Informationen. Die leeren Zeilen am Ende sind wichtig, sonst scheint es nur zu hängen.
quelle
Wenn für sie Fehlerseiten aktiviert sind, können Sie zu einer nicht vorhandenen Seite gehen und den unteren Rand der 404-Seite anzeigen.
quelle
Ihre beste Option ist PHP: Allen Versionsanforderungen von der Clientseite kann nicht vertraut werden, da Ihr Apache mit ServerTokens Prod und ServerSignature Off konfiguriert werden kann. Siehe: http://www.petefreitag.com/item/419.cfm
quelle
Rufen Sie in der Standardinstallation eine Seite auf, die nicht vorhanden ist, und am Ende wird eine Fehlermeldung mit der Version angezeigt:
quelle
Verwenden Sie einfach Folgendes: Die Zeichenfolge sollte bereits vorhanden sein:
quelle
Verwenden Sie dieses PHP-Skript:
Ich apache_get_version .
quelle