Назад | Перейти на главную страницу

Как мне узнать, где находится код веб-сайта?

Факты:

Проблема в том, что я понятия не имею, где - проще говоря - найти загружаемый 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 - код вашего сайта.

Это конфигурационный файл по умолчанию, вы также получите некоторую информацию, пожалуйста, проверьте и их.