
वेब भेद्यता स्कैनर्स के लिए एक शक्तिशाली ब्राउज़र क्रॉलर
वेब भेद्यता स्कैनर के लिए एक शक्तिशाली ब्राउज़र क्रॉलर
अंग्रेज़ी दस्तावेज़ | 中文文档
क्रॉलरगो एक ब्राउज़र क्रॉलर है जो URL संग्रह के लिए chrome headless मोड का उपयोग करता है। यह DOM रेंडरिंग चरण के साथ पूरे वेब पेज के प्रमुख स्थानों को हुक करता है, स्वचालित रूप से फॉर्म भरता है और सबमिट करता है, बुद्धिमान JS इवेंट ट्रिगरिंग के साथ, और वेबसाइट द्वारा उजागर किए गए अधिक से अधिक प्रविष्टियाँ एकत्र करता है। अंतर्निहित URL डी-डुप्लीकेशन मॉड्यूल बड़ी संख्या में स्यूडो-स्टैटिक URL को फ़िल्टर करता है, फिर भी बड़ी वेबसाइटों के लिए तेज़ पार्सिंग और क्रॉलिंग गति बनाए रखता है, और अंततः उच्च गुणवत्ता वाले अनुरोध परिणामों का संग्रह प्राप्त करता है।
क्रॉलरगो वर्तमान में निम्नलिखित सुविधाओं का समर्थन करता है:

कृपया स्थापित करने और उपयोग करने से पहले अस्वीकरण को ध्यान से पढ़ें और पुष्टि करें।
निर्माण
make build
make build_all
यदि आप लिनक्स सिस्टम का उपयोग कर रहे हैं और क्रोम आपको लापता निर्भरताओं के लिए संकेत देता है, तो कृपया नीचे समस्या निवारण देखें
मान लें कि आपका क्रोमियम स्थापना निर्देशिका /tmp/chromium/ है, एक ही समय में 10 टैब खोलें और testphp.vulnweb.com को क्रॉल करें:
bin/crawlergo -c /tmp/chromium/chrome -t 10 http://testphp.vulnweb.com/
आप बिना सिरदर्द के इसे डॉकर के साथ भी उपयोग कर सकते हैं:
git clone https://github.com/Qianlitp/crawlergo
docker build . -t crawlergo
docker run crawlergo http://testphp.vulnweb.com/
bin/crawlergo -c /tmp/chromium/chrome -t 10 --request-proxy socks5://127.0.0.1:7891 http://testphp.vulnweb.com/
डिफ़ॉल्ट रूप से, क्रॉलरगो परिणाम सीधे स्क्रीन पर प्रिंट करता है। हम आगे आउटपुट मोड को json पर सेट करते हैं, और पायथन का उपयोग करके इसे कॉल करने का नमूना कोड इस प्रकार है:
#!/usr/bin/python3
# coding: utf-8
import simplejson
import subprocess
def main():
target = "http://testphp.vulnweb.com/"
cmd = ["bin/crawlergo", "-c", "/tmp/chromium/chrome", "-o", "json", target]
rsp = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, error = rsp.communicate()
# "--[Mission Complete]--" is the end-of-task separator string
result = simplejson.loads(output.decode().split("--[Mission Complete]--")[1])
req_list = result["req_list"]
print(req_list[0])
if __name__ == '__main__':
main()
जब आउटपुट मोड json पर सेट होता है, तो लौटाया गया परिणाम, JSON डीसेरियलाइज़ेशन के बाद, चार भागों में होता है:
all_req_list: इस क्रॉल कार्य के दौरान मिले सभी अनुरोध, अन्य डोमेन से किसी भी संसाधन प्रकार सहित।req_list: इस क्रॉल कार्य के वर्तमान डोमेन परिणाम लौटाता है, स्यूडो-स्टैटिक रूप से डी-डुप्लीकेटेड, बिना स्थिर संसाधन लिंक के। यह all_req_list का एक उपसमूह है।all_domain_list: सभी मिले डोमेन की सूची।sub_domain_list: मिले उपडोमेन की सूची।क्रॉलरगो पूर्ण अनुरोध और URL लौटाता है, जिसका उपयोग विभिन्न तरीकों से किया जा सकता है:
अन्य निष्क्रिय वेब भेद्यता स्कैनर के साथ संयोजन में उपयोग किया जाता है
पहले, एक निष्क्रिय स्कैनर शुरू करें और सुनने का पता सेट करें: http://127.0.0.1:1234/
इसके बाद, मान लें कि क्रॉलरगो स्कैनर के समान मशीन पर है, क्रॉलरगो शुरू करें और पैरामीटर सेट करें:
--push-to-proxy http://127.0.0.1:1234/
होस्ट बाइंडिंग (उच्च संस्करण क्रोम के लिए उपलब्ध नहीं) (उदाहरण)
कस्टम कुकीज़ (उदाहरण)
क्रॉलरगो द्वारा उत्पन्न ज़ोंबी प्रक्रियाओं को नियमित रूप से साफ करें (उदाहरण), @ring04h द्वारा योगदान
क्रॉलरगो डिफ़ॉल्ट रूप से हेडलेस मोड डिटेक्शन को बायपास कर सकता है।
https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html

'Fetch.enable' नहीं मिला
Fetch नए संस्करण के क्रोम द्वारा समर्थित एक सुविधा है, यदि यह त्रुटि होती है, तो इसका मतलब है कि आपका संस्करण बहुत कम है, कृपया क्रोम संस्करण को अपग्रेड करें।
क्रोम लापता निर्भरताओं जैसे xxx.so के साथ चलता है
// Ubuntu
apt-get install -yq --no-install-recommends \
libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 \
libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 \
libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libgbm1 \
libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 libnss3
// CentOS 7
sudo yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 \
libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 \
ipa-gothic-fonts xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc -y
sudo yum update nss -y
रन प्रॉम्प्ट नेविगेशन टाइमआउट / ब्राउज़र नहीं मिला / सही ब्राउज़र निष्पादन योग्य पथ पता नहीं
सुनिश्चित करें कि ब्राउज़र निष्पादन योग्य पथ सही ढंग से कॉन्फ़िगर किया गया है, पता बार में chrome://version टाइप करें, और निष्पादन योग्य फ़ाइल पथ खोजें:
