Факты:
Проблема в том, что я понятия не имею, где - проще говоря - найти загружаемый index.html / index.php.
Как мне понять, где найти PHP и HTML код сайта? Есть ли системный подход к этой проблеме?
Прежде всего, вы должны проверить, какие сайты размещены на сервере.
# apachectl -t -D DUMP_VHOSTS
Затем, когда вы найдете сайт, проверьте соответствующий файл конфигурации для параметра DocumentRoot. Например
# apachectl -t -D DUMP_VHOSTS
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server 192.168.88.87 (/etc/httpd/conf.d/192.168.88.87.conf:1)
port 80 namevhost 192.168.88.87 (/etc/httpd/conf.d/192.168.88.87.conf:1)
port 80 namevhost gl-hooks.example.net (/etc/httpd/conf.d/hooks.conf:1)
alias example.net
alias www.example.net
Вы хотите знать, где находится веб-сайт example.net
# grep DocumentRoot /etc/httpd/conf.d/hooks.conf
DocumentRoot /vhosts/gl-hooks.example.net/
# cd /vhosts/gl-hooks.example.net/
# ls -la
total 4484
drwxr-xr-x 6 apache apache 4096 Feb 10 11:59 .
drwxr-xr-x 14 root root 4096 Feb 23 08:54 ..
-rw-r--r-- 1 root root 1078 Dec 19 09:31 favicon.ico
-rw-r--r-- 1 apache apache 195 Dec 25 14:51 .htaccess
-rw-r--r-- 1 apache apache 98 Dec 7 10:52 index.html
Также следует искать псевдонимы и перенаправления / перезаписи.
Вы также должны обращать внимание на любые директивы псевдонимов. Например, со следующими настройками
<VirtualHost *:80>
ServerName example.net
ServerAlias www.example.net
...
DocumentRoot /vhosts/default/public_html/
Alias /api/ /vhosts/default/public_api/
...
</VirtualHost>
Когда вы получите доступ http://example.net/some.file.html - apache будет искать файл в / vhosts / default / public_html / одновременно с http://example.net/api/some.file.html файл будет просматриваться / vhosts / default / public_api /.
Что касается перезаписи / перенаправления, особенно программного (когда перенаправления запускаются некоторым PHP-кодом), я думаю, что нет простого способа найти такие случаи.
Попробуйте использовать поиск
find / -type f \( -iname "*index.html*" -o -iname "*index.php*" \) 2> /dev/null
В противном случае, предполагая, что Apache был установлен из репозиториев Ubuntu, загляните в /etc/apache2/sites-available
, т.е.
grep -niR "thedomainname" /etc/apache2/sites-available
Если на веб-сайте определен apache VHOST, который может найти файл конфигурации, затем поищите в этом файле "documentroot"
это должно сказать вам расположение исходного кода
Другой метод, который может быть полезен для отладки веб-сайта (или любого другого процесса в этом отношении), - использовать lsof
(который может быть не по пути, обычно встречается в /sbin/lsof
)
lsof -s [PID]
перечислит все файлы, которые обрабатывает данный процесс, и может быть полезно увидеть, что именно используется (это включает ваши файлы html / php, а также файлы журналов и библиотеки, необходимые сайту)
Я понятия не имею, где ... найти загружаемый index.html / index.php.
Один из подходов - просмотреть сайт и найти более уникальную страницу - скажем, newcontactform.php - в идеале такую, которая вряд ли появится на других сайтах, размещенных на том же сервере.
Затем вы можете попробовать
locate newcontactform.php
если это не удается, следуйте за
find / -name newcontactform.php
это должно создать управляемый небольшой список кандидатов.
Затем вы можете проверить файлы, выполнить сравнение и, при необходимости, попробовать небольшие изменения (например, вставить комментарий HTML), чтобы убедиться, что файл действительно создает страницу.
Иногда файлы конфигурации видны в выводе ps
команда. В худшем случае ps -ef | grep -e 'apache|httpd'
но более творческое использование ps
варианты, возможно, стоит изучить.
Вы можете искать httpd.conf
в типичных местах для Ubuntu и для проекта Apache httpd (которые могут отличаться) или просто используйте locate
и find
как указано выше.
Иногда основной файл конфигурации относится к другим файлам конфигурации для vhosts. Вы можете решить это, определив основной файл конфигурации.
Иногда на старых серверах работают различные демоны веб-серверов. В этом случае может потребоваться время, чтобы найти их все и выяснить, где находятся их файлы конфигурации. Комбинация вышеперечисленных методов в конечном итоге приведет к успеху.
Вы можете узнать, какие программы прослушивают порт 80 и т. Д., Используя netstat -lntp
. Часто обнаружение двоичных файлов является полезным указателем на дерево каталогов, которое содержит файлы конфигурации.
Вы можете проверить Vhost для домена, который вы ищете, в файле конфигурации веб-сервера (apache) - httpd.conf (скорее всего, находится в / etc /). Просто откройте файл и пролистайте его, пока не найдете VirtulaHost директивы для вашего домена, и там вы увидите DocumentRoot директива - это корневой каталог документов вашего веб-сайта, место, где вы найдете файлы приложения.
Пожалуйста, зайдите в
cd / etc / apache2 / сайт-доступный /
Здесь вы найдете свой файл конфигурации (например, 000-default.conf)
Пожалуйста, откройте этот файл / откройте свой файл конфигурации, используя
vi 000-default.conf
Там вы найдете DocumentRoot - код вашего сайта.
Это конфигурационный файл по умолчанию, вы также получите некоторую информацию, пожалуйста, проверьте и их.