Die Fakten:
- Es gibt eine Website
- Diese Website ist über www.example.org zugänglich
- Es gibt eine EC2-Instanz, die die Website sehr wahrscheinlich beibehält
- Der Server ist Apache
- Das Server-Betriebssystem ist Ubuntu
- Ich habe vollen Zugriff auf den Server (und Sudo-Berechtigungen)
- Der Server ist ein großes Durcheinander
Das Problem ist, ich habe keine Ahnung, wo ich - einfach ausgedrückt - die index.html / index.php finden soll, die geladen wird.
Wie finde ich heraus, wo sich der PHP- und HTML-Code der Website befindet? Gibt es einen systematischen Ansatz für dieses Problem?
apache-2.2
ubuntu
php
Raffael
quelle
quelle
find / -name nameofsomefileonthewebsite.html
?Antworten:
Zunächst sollten Sie überprüfen, welche Websites auf dem Server gehostet werden
Wenn Sie dann eine Site finden, überprüfen Sie die entsprechende Konfigurationsdatei für die Option DocumentRoot. Beispielsweise
Sie möchten wissen, wo sich eine Website example.net befindet
Beachten Sie auch alle Alias-Anweisungen. Zum Beispiel mit folgenden Einstellungen
Wenn Sie auf http://example.net/some.file.html zugreifen, durchsucht Apache die Datei nach / vhosts / default / public_html /, und zwar gleichzeitig mit http://example.net/api/some.file .html Die Datei wird unter / vhosts / default / public_api / angezeigt.
Was ist mit Umschreibungen / Weiterleitungen, insbesondere programmgesteuert (wenn Weiterleitungen durch einen PHP-Code ausgelöst werden)? Ich denke, es gibt keinen einfachen Weg, solche Fälle zu finden.
quelle
Versuchen Sie es mit find
Ansonsten unter der Annahme, dass Apache von Ubuntu-Repositories installiert wurde, schauen Sie in
/etc/apache2/sites-available
, dhWenn auf der Website ein Apache-VHOST definiert ist, der möglicherweise die Konfigurationsdatei findet,
"documentroot"
sollten Sie in dieser Datei nachsehen, wo sich der Quellcode befindetquelle
-type f
gilt nur für-iname "*index.html*"
in Ihrem Befehl. Sollte sein-type f \( -iname "*index.html*" -o -name "*index.php*" \)
Eine andere Methode, die zum Debuggen einer Website (oder eines anderen Prozesses in dieser Angelegenheit) nützlich sein kann, ist die Verwendung von
lsof
(möglicherweise nicht im Pfad befindlichen, häufig in/sbin/lsof
).lsof -s [PID]
listet alle Dateien auf, für die der angegebene Prozess ein Handle hat, und kann hilfreich sein, um genau zu sehen, was verwendet wird (dies umfasst Ihre HTML- / PHP-Dateien sowie Protokolldateien und Bibliotheken, die die Site benötigt).quelle
Suchen Sie nach Seitenquelldateien
Ein Ansatz besteht darin, die Site zu durchsuchen, um eine einzigartigere Seite zu finden - sagen wir newcontactform.php - im Idealfall eine Seite, die nicht auf anderen Sites erscheint, die auf demselben Server gehostet werden.
Sie können es dann versuchen
Wenn dies fehlschlägt, folgen Sie
dies sollte eine überschaubare Liste von Kandidaten ergeben.
Anschließend können Sie die Dateien überprüfen, Unterschiede festlegen und bei Bedarf kleine Änderungen vornehmen (z. B. einen HTML-Kommentar einfügen), um sicherzustellen, dass die Datei tatsächlich die Seite erstellt.
Finde die Configs
Manchmal sind Konfigurationsdateien in der Ausgabe des
ps
Befehls zu sehen. Der schlimmste Fall istps -ef | grep -e 'apache|httpd'
jedoch, dass eine kreativere Nutzung derps
Optionen möglicherweise eine Erkundung wert ist.Sie können
httpd.conf
an den typischen Orten für Ubuntu und für das Apache httpd-Projekt (die sich unterscheiden können) suchen oder einfachlocate
undfind
wie oben verwenden.Manchmal verweist die Hauptkonfigurationsdatei auf andere Konfigurationsdateien für vhosts. Sie können dies herausfinden, indem Sie die Hauptkonfigurationsdatei identifizieren.
Chronische Fälle
Manchmal führen alte Server eine Vielzahl von Webserver-Daemons aus. In diesem Fall kann es eine Weile dauern, bis alle gefunden wurden und die Konfigurationsdateien gefunden wurden. Eine Kombination der oben genannten Techniken sollte schließlich erfolgreich sein.
Sie können herausfinden, welche Programme über Port 80 usw. empfangsbereit sind
netstat -lntp
. Oft ist das Auffinden der Binärdateien ein nützlicher Zeiger auf eine Verzeichnisstruktur, die die Konfigurationsdateien enthält.quelle
Sie können den Vhost für die gesuchte Domain in der Konfigurationsdatei des Webservers (Apache) - httpd.conf (wahrscheinlich in / etc /) überprüfen. Öffnen Sie einfach die Datei und scrollen Sie durch die Datei, bis Sie die VirtulaHost- Direktive für finden Ihre Domain und dort sehen Sie die DocumentRoot- Direktive - das ist das Dokumentenstammverzeichnis Ihrer Website, der Ort, an dem Sie die Dateien der Anwendung finden.
quelle
Bitte gehe zu
cd / etc / apache2 / site-avaliable /
Hier finden Sie Ihre Konfigurationsdatei (zB: 000-default.conf)
Bitte öffnen Sie diese Datei / öffnen Sie Ihre Konfigurationsdatei mit
vi 000-default.conf
Dort finden Sie DocumentRoot. Dies ist der Code Ihrer Website
Dies ist die Standard-Conf-Datei. Sie können auch einige Conf-Details überprüfen.
quelle