Web sitesinin kodunun nerede olduğunu nasıl öğrenirim?


28

Gerçekler:

  • bir web sitesi var
  • bu web sitesine www.example.org adresinden erişilebilir.
  • büyük olasılıkla web sitesini tutan bir EC2 örneği var
  • sunucu Apache
  • sunucu işletim sistemi Ubuntu
  • Sunucuya tam erişimim var (ve sudo ayrıcalıkları)
  • sunucu çok büyük bir karmaşa

Sorun şu ki nereye yükleneceği hakkında hiçbir fikrim yok - basitçe koymak - yüklenen index.html / index.php dosyasını bulun.

Web sitesinin PHP ve HTML kodunu nerede bulacağımı nasıl bulurum? Bu soruna sistematik bir yaklaşım var mı?


etki alanı adını biliyor musunuz?
the_velour_fog

9
evet, ikinci kurşun noktasında belirtiyorum
Raffael

find / -name nameofsomefileonthewebsite.html?
user253751

Yanıtlar:


53

Öncelikle, sunucuda hangi web sitelerinin barındırıldığını kontrol etmeniz gerekir.

# apachectl -t -D DUMP_VHOSTS

Sonra bir site bulacaksınız ne zaman DocumentRoot seçeneği için ilgili yapılandırma dosyasını kontrol edin. Örneğin

# 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

Bir web sitesinin nerede olduğunu bilmek istersiniz 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

Ayrıca takma ad ve yönlendirmeler / yeniden yazarlar için uyanık olmalı

Ayrıca takma ad direktiflerine de dikkat etmelisiniz. Örneğin aşağıdaki ayarlarla

<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 dosyasına erişeceğiniz zaman - apache, / vhosts / default / public_html / dizininde aynı anda http://example.net/api/some.file dosyasını arayacaktır. .html , dosya / vhosts / default / public_api / dizinine bakacaktır.

Yeniden yazmak / yönlendirmeler, özellikle de programatik (yönlendirmeler bazı php kodları tarafından tetiklendiğinde), böyle vakaları bulmak için kolay bir yol olmadığını düşünüyorum.


3
Ayrıca takma adları ve yönlendirmeleri / yeniden yazarları aramaya devam etmelidir.
Bob,

3

Bul'u kullanmayı dene

find / -type f \( -iname "*index.html*" -o -iname "*index.php*" \) 2> /dev/null

Aksi takdirde Apache Ubuntu depolarından, bakıştan kurulduktan varsayarak /etc/apache2/sites-available, yani

grep -niR "thedomainname" /etc/apache2/sites-available

Web sitesinde, yapılandırılmış dosyayı "documentroot"bulabilen tanımlanmış bir VHOST apache varsa, bunun için kaynak kodun yerini söylemeli.


1
iyi ... Ben bunu "yaptım" - 2 saat sürdü, sunucu cevap vermeyi neredeyse bıraktı ve 67 index.html ve neredeyse index.php's bulundu. Yani bu yaklaşım benim için yapmıyor.
Raffael

2
Böyle bir durumda bulmak kullanmak gerçekten kötü bir fikir
ALex_hha

1
Ve muhtemelen siteler yerine etkin kullanmalısınız
ALex_hha

1
index.html, aranacak harika bir dosya değil. Apache'de dizin listelerinin kapatılmaması durumunda her dizinde bir tane koyan birkaç CMS var, bu yüzden dizin içeriğini göstermek yerine her zaman boş bir sayfa yükleyecektir.
gabe3886

@ the_velour_fog Hayır, burada çok kritik bir durum var, ancak -type fyalnızca -iname "*index.html*"sizin emrinizde uygulanıyor . Olması gereken-type f \( -iname "*index.html*" -o -name "*index.php*" \)

2

Bir web sitesinde hata ayıklamak için yararlı olabilecek başka bir yöntem (veya bu konuda herhangi bir işlem) kullanmaktır lsof(yolda bulunmayan, genellikle içinde bulunur /sbin/lsof)

lsof -s [PID] Verilen işlemin üzerinde çalıştığı tüm dosyaları listeler ve tam olarak ne kullanıldığını görmek için yararlı olabilir (buna html / php dosyalarınızı ve sitenin ihtiyaç duyduğu günlük dosyalarını ve kütüphanelerini içerir)


1

Nerede ... hiçbir şey bilmiyorum ... yüklenen index.html / index.php dosyasını bulun.

Sayfa kaynak dosyalarına bakın

Yaklaşımlardan biri, daha benzersiz bir sayfa bulmak için siteye göz atmaktır - diyelim ki, aynı sunucu tarafından barındırılan diğer sitelerde görünmesi muhtemel olmayan yenicontactform.php.

Daha sonra deneyebilirsin

locate newcontactform.php

Bu başarısız olursa, takip edin

find / -name newcontactform.php

bu, yönetilebilir derecede küçük bir aday listesi üretmelidir.

Daha sonra dosyaları inceleyebilir, farklılıklar yapabilir ve gerekirse dosyanın gerçekten sayfa oluşturduğunu doğrulamak için küçük değişiklikler deneyebilirsiniz (örn. Bir HTML yorumu ekleyin).

Yapılandırmaları bulun

Bazen config dosyaları pskomutun çıktısında görülür . En kötü durum, ps -ef | grep -e 'apache|httpd'ancak psseçeneklerin daha yaratıcı kullanılması araştırmaya değer olabilir.

httpd.confUbuntu ve Apache httpd projesi için tipik yerlerde (farklı olabilir) arayabilir veya sadece locateve findyukarıdaki gibi kullanabilirsiniz .

Bazen ana yapılandırma dosyası vhosts için diğer yapılandırma dosyalarını ifade eder. Bunu ana config dosyasını tanımlayarak çözebilirsiniz.

Kronik vakalar

Bazen, eski sunucular çeşitli web sunucusu görevlileri çalıştırır. Bu durumda hepsini bulmak biraz zaman alabilir ve yapılandırma dosyalarının nerede olduğunu hesaplayabilir. Yukarıdaki tekniklerin bir kombinasyonu nihayetinde başarılı olmalıdır.

Hangi programların 80 numaralı bağlantı noktasını kullanarak dinlediğini bulabilirsiniz netstat -lntp. Genellikle, ikili dosyaları bulmak, config dosyalarını içeren bir dizin ağacına faydalı bir işaretçidir.


1

- Sen Web sunucusunun (apache) yapılandırma dosyasında aradığınız bu alan adı için Vhost kontrol edebilirsiniz httpd.conf Basitçe bulana kadar buna aracılığıyla dosya ve kaydırma açın (büyük olasılıkla vb / / bulunur) VirtulaHost için direktifini etki alanınız ve orada göreceksiniz, böylece web sitenizin belge kök dizini, uygulamanın dosyalarını bulacağınız yer olan DocumentRoot yönergesini göreceksiniz .


1

Lütfen git

cd / etc / apache2 / site tarafından kullanılabilir /

Burada konfigürasyon dosyanızı bulacaksınız (örneğin: 000-default.conf)

Lütfen bu dosyayı açın / yapılandırma dosyanızı kullanarak

vi 000-default.conf

Orada DocumentRoot'u bulacaksınız. Web sitenizin kodu

Bu Default conf dosyası aynı şekilde bazı conf detaylarını da kontrol ediniz.


3
Bu sisteme bağlıdır.
Monica ile Hafiflik Yarışları

@PreferenceBean yorumuna ek olarak, bu yalnızca varsayılan vhost'ların yapılandırmasını gösterir. Orada ayrıca kontrol edilmesi gerekebilecek işe yaramaz isimler taşıyan birçok hayalet olabilir
gabe3886
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.