Fakty:
- jest strona internetowa
- ta strona jest dostępna za pośrednictwem www.example.org
- istnieje instancja EC2, która najprawdopodobniej utrzymuje stronę internetową
- serwer to Apache
- system operacyjny serwera to Ubuntu
- Mam pełny dostęp do serwera (i uprawnienia sudo)
- serwer to ogromny bałagan
Problem w tym, że nie mam pojęcia, gdzie - po prostu umieścić - znaleźć plik index.html / index.php, który zostanie załadowany.
Jak dowiedzieć się, gdzie znaleźć kod PHP i HTML witryny? Czy istnieje systematyczne podejście do tego problemu?
apache-2.2
ubuntu
php
Raffael
źródło
źródło
find / -name nameofsomefileonthewebsite.html
?Odpowiedzi:
Przede wszystkim powinieneś sprawdzić, jakie strony są hostowane na serwerze
Następnie, gdy znajdziesz witrynę, sprawdź odpowiedni plik konfiguracyjny dla opcji DocumentRoot. Na przykład
Chcesz wiedzieć, gdzie znajduje się strona internetowa example.net
Powinieneś także zwrócić uwagę na wszelkie dyrektywy dotyczące aliasów. Na przykład przy następujących ustawieniach
Kiedy uzyskasz dostęp do http://example.net/some.file.html - apache spojrzy na plik w / vhosts / default / public_html /, jednocześnie z http://example.net/api/some.file .html plik zostanie wyświetlony w / vhosts / default / public_api /.
Co z przepisem / przekierowaniem, szczególnie programowym (kiedy przekierowania są wywoływane przez jakiś kod php), myślę, że nie ma łatwego sposobu na znalezienie takich przypadków.
źródło
Spróbuj użyć find
W przeciwnym razie zakładając, że Apache został zainstalowany z repozytoriów Ubuntu, zajrzyj do niego
/etc/apache2/sites-available
, tjJeśli na stronie internetowej zdefiniowano apache VHOST, który może zlokalizować plik konfiguracyjny, poszukaj w nim tego pliku, aby
"documentroot"
podać lokalizację kodu źródłowegoźródło
-type f
dotyczy tylko-iname "*index.html*"
twojego polecenia. Powinien być-type f \( -iname "*index.html*" -o -name "*index.php*" \)
Inną metodą, która może być przydatna do debugowania strony internetowej (lub dowolnego innego procesu w tym zakresie) jest użycie
lsof
(która może nie być zgodna z ścieżką, powszechnie znajdowana w/sbin/lsof
)lsof -s [PID]
wyświetli listę wszystkich plików, na których dany proces ma uchwyt, i może być przydatny, aby zobaczyć dokładnie, co jest używane (obejmuje to pliki html / php, a także pliki dziennika i biblioteki, których potrzebuje strona)źródło
Poszukaj plików źródłowych strony
Jednym z podejść jest przeglądanie witryny w celu znalezienia bardziej unikalnej strony - powiedzmy newcontactform.php - najlepiej takiej, która prawdopodobnie nie pojawi się w innych witrynach hostowanych przez ten sam serwer.
Następnie możesz spróbować
jeśli to się nie powiedzie, proszę
powinno to stworzyć stosunkowo małą listę kandydatów.
Następnie możesz sprawdzić pliki, dokonać różnic i, jeśli to konieczne, wypróbować małe zmiany (np. Wstaw komentarz HTML), aby sprawdzić, czy plik rzeczywiście tworzy stronę.
Znajdź konfiguracje
Czasami pliki konfiguracyjne są widoczne w danych wyjściowych
ps
polecenia. Najgorszy przypadek,ps -ef | grep -e 'apache|httpd'
aleps
warto bardziej kreatywnie wykorzystać opcje.Możesz szukać
httpd.conf
w typowych lokalizacjach dla Ubuntu i projektu httpd Apache (które mogą się różnić) lub po prostu użyćlocate
ifind
jak wyżej.Czasami główny plik konfiguracyjny odnosi się do innych plików konfiguracyjnych dla vhostów. Możesz to rozwiązać, identyfikując główny plik konfiguracyjny.
Przypadki przewlekłe
Czasami na starych serwerach działają różne demony serwera WWW. W takim przypadku znalezienie ich wszystkich i ustalenie, gdzie znajdują się ich pliki konfiguracyjne, może chwilę potrwać. Kombinacja powyższych technik powinna ostatecznie zakończyć się sukcesem.
Możesz sprawdzić, jakich programów nasłuchuje na porcie 80 itp
netstat -lntp
. Często lokalizowanie plików binarnych jest przydatnym wskaźnikiem do drzewa katalogów zawierającego pliki konfiguracyjne.źródło
Możesz sprawdzić Vhost dla szukanej domeny w pliku konfiguracyjnym serwera WWW (apache) - httpd.conf (najprawdopodobniej w / etc /) Po prostu otwórz plik i przewiń go, aż znajdziesz dyrektywę VirtulaHost dla Twoja domena, a tam zobaczysz dyrektywę DocumentRoot - główny katalog dokumentów Twojej witryny, miejsce, w którym znajdziesz pliki aplikacji.
źródło
Proszę idź do
cd / etc / apache2 / site-avaliable /
Tutaj znajdziesz swój plik konfiguracyjny (np .: 000-default.conf)
Otwórz ten plik / otwórz plik konfiguracyjny za pomocą
vi 000-default.conf
Znajdziesz tam DocumentRoot, czyli kod Twojej witryny
Jest to domyślny plik conf, podobnie jak niektóre szczegóły conf, sprawdź je również.
źródło