Los hechos:
- hay un sitio web
- Se puede acceder a este sitio web a través de www.example.org
- hay una instancia EC2 que muy probablemente mantiene el sitio web
- el servidor es Apache
- el sistema operativo del servidor es Ubuntu
- Tengo acceso completo al servidor (y privilegios de sudo)
- el servidor es un gran desastre
El problema es que no tengo idea de dónde, simplemente, encontrar el index.html / index.php que se carga.
¿Cómo puedo averiguar dónde encontrar el código PHP y HTML del sitio web? ¿Existe un enfoque sistemático para este problema?
apache-2.2
ubuntu
php
Raffael
fuente
fuente
find / -name nameofsomefileonthewebsite.html
?Respuestas:
En primer lugar, debe verificar qué sitios web están alojados en el servidor
Luego, cuando encuentre un sitio, verifique el archivo de configuración correspondiente para la opción DocumentRoot. Por ejemplo
Desea saber dónde reside un sitio web example.net
También debe prestar atención a las directivas de alias. Por ejemplo con la siguiente configuración
Cuándo accederá a http://example.net/some.file.html - apache buscará el archivo en / vhosts / default / public_html /, al mismo tiempo con http://example.net/api/some.file .html el archivo se verá en / vhosts / default / public_api /.
¿Qué pasa con las reescrituras / redirecciones, especialmente programáticas (cuando las redirecciones son activadas por algún código php), creo que no hay una manera fácil de encontrar tales casos?
fuente
Intenta usar find
De lo contrario, suponiendo que Apache se haya instalado desde los repositorios de Ubuntu, mire
/etc/apache2/sites-available
, es decirSi el sitio web tiene un Apache VHOST definido, que podría ubicar el archivo de configuración, entonces busque en ese archivo para que
"documentroot"
esto le indique la ubicación del código fuentefuente
-type f
solo se aplica-iname "*index.html*"
en tu comando. Debería ser-type f \( -iname "*index.html*" -o -name "*index.php*" \)
Otro método, que puede ser útil para depurar un sitio web (o cualquier proceso para el caso) es usar
lsof
(que puede no estar en la ruta, comúnmente se encuentra en/sbin/lsof
)lsof -s [PID]
enumerará todos los archivos que el proceso dado maneja y puede ser útil para ver exactamente qué se está utilizando (esto incluye sus archivos html / php, así como los archivos de registro y las bibliotecas que el sitio necesita)fuente
Busque los archivos fuente de la página
Un enfoque es navegar por el sitio para encontrar una página más única, digamos newcontactform.php, idealmente una que sea poco probable que aparezca en otros sitios alojados en el mismo servidor.
Entonces puedes intentar
si eso falla, sigue
esto debería producir una lista manejablemente pequeña de candidatos.
Luego puede inspeccionar los archivos, hacer diferencias y, si es necesario, probar pequeños cambios (por ejemplo, insertar un comentario HTML) para verificar que el archivo realmente produce la página.
Encuentra las configuraciones
A veces, los archivos de configuración son evidentes en la salida del
ps
comando. El peor de los casos es que vale la pena explorarps -ef | grep -e 'apache|httpd'
un uso más creativo de lasps
opciones.Puede buscar
httpd.conf
en las ubicaciones típicas de Ubuntu y para el proyecto httpd de Apache (que puede diferir) o simplemente usarlocate
yfind
como se indica arriba.A veces, el archivo de configuración principal se refiere a otros archivos de configuración para vhosts. Puede resolver esto identificando el archivo de configuración principal.
Casos crónicos
A veces, los servidores antiguos ejecutan una variedad de demonios de servidor web. En ese caso, puede llevar un tiempo encontrarlos a todos y determinar dónde están sus archivos de configuración. Una combinación de las técnicas anteriores eventualmente debería tener éxito.
Puede encontrar qué programas están escuchando en el puerto 80, etc usando
netstat -lntp
. A menudo, localizar los archivos binarios es un puntero útil a un árbol de directorios que contiene los archivos de configuración.fuente
Puede verificar el Vhost para el dominio que está buscando en el archivo de configuración del servidor web (apache) - httpd.conf (probablemente ubicado en / etc /) Simplemente abra el archivo y desplácese hasta encontrar la directiva VirtulaHost para su dominio y allí verá la directiva DocumentRoot , que es el directorio raíz de documentos de su sitio web, el lugar donde encontrará los archivos de la aplicación.
fuente
Por favor ve a
cd / etc / apache2 / site-avaliable /
Aquí encontrará su archivo de configuración (es decir: 000-default.conf)
Abra este archivo / abra su archivo de configuración usando
vi 000-default.conf
Allí encontrará DocumentRoot. Ese es el código de su sitio web
Este es el archivo de configuración predeterminado, de la misma forma que tendrá algunos detalles de configuración, por favor verifíquelos también.
fuente