मुझे कैसे पता चलेगा कि वेब साइट का कोड कहाँ रहता है?


28

तथ्यों:

  • एक वेबसाइट है
  • यह वेबसाइट www.example.org के माध्यम से सुलभ है
  • वहाँ एक EC2 उदाहरण है जो बहुत संभावना वेबसाइट रखता है
  • सर्वर अपाचे है
  • सर्वर ओएस उबंटू है
  • सर्वर (और sudo विशेषाधिकार) तक मेरी पूरी पहुंच है
  • सर्वर एक बड़ी गड़बड़ है

समस्या यह है कि मुझे कोई पता नहीं है कि कहां - बस रखा गया है - index.html / index.php ढूंढें जो लोड हो जाता है।

वेबसाइट के PHP और HTML कोड को खोजने के लिए मुझे कैसे पता चलेगा? क्या इस समस्या के लिए एक व्यवस्थित दृष्टिकोण है?


क्या आप डोमेन नाम जानते हैं?
the_velour_fog

9
हां, मैं इसे दूसरे बुलेट पॉइंट में
बताता

find / -name nameofsomefileonthewebsite.html?
user253751

जवाबों:


53

सबसे पहले आपको यह देखना चाहिए कि सर्वर पर कौन सी वेबसाइट्स होस्ट की गई हैं

# 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 एक्सेस करेंगे - अपाचे उसी समय http://example.net/api/some.file के साथ / vhosts / default / public_html / पर फ़ाइल देखेंगे। .html फ़ाइल को / vhosts / default / public_api / पर देखा जाएगा।

पुनर्लेखनों / पुनर्निर्देशों के बारे में क्या, विशेष रूप से प्रोग्रामेटिक (जब रीडायरेक्ट को कुछ php कोड द्वारा ट्रिगर किया जाता है), मुझे लगता है कि ऐसे मामलों को खोजने का कोई आसान तरीका नहीं है।


3
उपनाम और पुनर्निर्देश / पुनर्लेखनों की तलाश भी होनी चाहिए।
बॉब

3

खोजने का उपयोग करके देखें

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

अन्यथा यह मानते हुए कि अपाचे उबंटू खजाने, में नज़र से स्थापित किया गया है /etc/apache2/sites-available, यानी

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

यदि वेबसाइट में अपाचे VHOST परिभाषित है, जो कि विन्यास फाइल का पता लगा सकता है, तो इसके लिए उस फाइल को देखें, "documentroot"आपको स्रोत कोड का स्थान बताना चाहिए


1
अच्छा ... मैंने "ऐसा" किया - 2 घंटे लग गए, सर्वर ने लगभग जवाब देना बंद कर दिया और मुझे 67 index.html का और लगभग कई index.php का मिला। तो यह दृष्टिकोण मेरे लिए नहीं कर रहा है।
राफेल

2
इस तरह के मामले में खोजने के लिए उपयोग करना बहुत बुरा विचार है
ALex_hha

1
और शायद आपको इसके बजाय साइटों-सक्षम का उपयोग करना चाहिए
ALex_hha

1
index.html के लिए शिकार करने के लिए एक बढ़िया फ़ाइल नहीं है। वहाँ कुछ CMS हैं जो केस डायरेक्टरी लिस्टिंग में प्रत्येक डायरेक्टरी में एक डालते हैं, Apache में बंद नहीं होते हैं इसलिए यह हमेशा डायरेक्ट कंटेंट दिखाने के बजाय एक खाली पेज लोड करेगा।
gabe3886

@the_velour_fog नहीं है कि यह सुपर क्रिटिकल है, लेकिन -type fयह केवल -iname "*index.html*"आपके आदेश में लागू है । होना चाहिए-type f \( -iname "*index.html*" -o -name "*index.php*" \)

2

एक अन्य विधि, जो किसी वेबसाइट को डिबग करने के लिए उपयोगी हो सकती है (या उस मामले के लिए कोई भी प्रक्रिया) का उपयोग करना है lsof(जो आमतौर पर नहीं मिल सकता है /sbin/lsof)

lsof -s [PID] दी गई प्रक्रिया में सभी फाइलों की सूची होगी, और यह देखने के लिए उपयोगी हो सकती है कि वास्तव में क्या उपयोग किया जा रहा है (इसमें आपकी html / php फाइलें, साथ ही लॉग फाइल और साइट की जरूरत की लाइब्रेरी शामिल हैं)


1

मुझे पता नहीं है कि कहां ... को index.html / index.php ढूंढें जो लोड हो जाता है।

पृष्ठ स्रोत फ़ाइलों के लिए देखें

एक दृष्टिकोण साइट को ब्राउज़ करने के लिए एक और अधिक अद्वितीय पृष्ठ खोजने के लिए है - जो newcontactform.php कहता है - आदर्श रूप से एक ही सर्वर द्वारा होस्ट की गई अन्य साइटों में दिखाई देने की संभावना नहीं है।

फिर आप कोशिश कर सकते हैं

locate newcontactform.php

यदि वह विफल रहता है, तो पालन करें

find / -name newcontactform.php

यह उम्मीदवारों की एक उल्लेखनीय छोटी सूची का उत्पादन करना चाहिए।

फिर आप फ़ाइलों का निरीक्षण कर सकते हैं, भिन्न हो सकते हैं और यदि आवश्यक हो तो छोटे परिवर्तन (जैसे HTML टिप्पणी डालें) यह सत्यापित करने के लिए कि फ़ाइल वास्तव में पृष्ठ का उत्पादन करती है।

विन्यास खोजें

कभी-कभी psकमांड के आउटपुट में कॉन्फिग फाइल्स स्पष्ट होती हैं । सबसे खराब स्थिति है, ps -ef | grep -e 'apache|httpd'लेकिन psविकल्पों का अधिक रचनात्मक उपयोग खोज के लायक हो सकता है।

आप httpd.confउबंटू के लिए विशिष्ट स्थानों और अपाचे httpd परियोजना के लिए देख सकते हैं (जो भिन्न हो सकते हैं) या बस उपयोग करें locateऔर findऊपर के रूप में।

कभी-कभी मुख्य कॉन्फ़िगरेशन फ़ाइल vhosts के लिए अन्य कॉन्फ़िगर फ़ाइलों को संदर्भित करती है। आप मुख्य कॉन्फ़िगरेशन फ़ाइल की पहचान करके इसे काम कर सकते हैं।

पुराने मामले

कभी-कभी, पुराने सर्वर विभिन्न प्रकार के वेबसर्वर डेमॉन चलाते हैं। उस स्थिति में उन सभी को खोजने में कुछ समय लग सकता है और काम कर सकता है जहां उनकी कॉन्फिग फाइल हैं। उपरोक्त तकनीकों का संयोजन अंततः सफल होना चाहिए।

आप पा सकते हैं कि कौन से प्रोग्राम पोर्ट 80 आदि पर सुन रहे हैं netstat -lntp। अक्सर, बायनेरिज़ का पता लगाना डायरेक्टरी ट्री का एक उपयोगी पॉइंटर होता है जिसमें कॉन्फिग फाइल होती है।


1

आप वेब सर्वर (Apache) कॉन्फ़िगरेशन फ़ाइल - httpd.conf (सबसे संभवतः में स्थित / etc /) के लिए देख रहे डोमेन के लिए Vhost की जाँच कर सकते हैं। बस फ़ाइल खोलें और इसे तब तक स्क्रॉल करें, जब तक आप के लिए VirtulaHod निर्देश न मिल जाए आपका डोमेन और वहां आपको DocumentRoot निर्देश दिखाई देगा - जो आपकी वेबसाइट का दस्तावेज़ रूट डायरेक्टरी है, जिस स्थान पर आपको एप्लिकेशन की फाइलें मिलेंगी।


1

कृपया जायें

cd / etc / apache2 / साइट-उपलब्ध /

यहां आपको अपनी कॉन्फ़िगरेशन फ़ाइल मिलेगी (यानी: 000-default.conf)

कृपया इस फ़ाइल को खोलें / अपनी कॉन्फ़िगरेशन फ़ाइल का उपयोग करके खोलें

vi 000-default.conf

वहां आपको DocumentRoot मिल जाएगा। आपकी वेबसाइट का कोड क्या है

यह डिफॉल्ट कॉन्फिडेंस फाइल है, इसी तरह आप कुछ कॉन्फिडेंस डिटेल्स भी देखेंगे।


3
यह प्रणाली-निर्भर है।
मोनिका

@PreferenceBean द्वारा टिप्पणी के अलावा, यह केवल डिफ़ॉल्ट vhosts के लिए कॉन्फ़िगरेशन दिखाएगा। वहाँ बेकार नामों के साथ वहाँ कई vhosts हो सकता है जो जाँच की आवश्यकता हो सकती है
gabe3886
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.