80,443 - Pentesting Web Methodology
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
अपने वेब ऐप्स, नेटवर्क और क्लाउड पर एक हैकर का दृष्टिकोण प्राप्त करें
महत्वपूर्ण, शोषण योग्य कमजोरियों को खोजें और रिपोर्ट करें जिनका वास्तविक व्यावसायिक प्रभाव है। हमारे 20+ कस्टम टूल का उपयोग करें ताकि हमले की सतह का मानचित्रण कर सकें, सुरक्षा मुद्दों को खोज सकें जो आपको विशेषाधिकार बढ़ाने की अनुमति देते हैं, और आवश्यक सबूत इकट्ठा करने के लिए स्वचालित शोषण का उपयोग करें, जिससे आपका कठिन काम प्रभावशाली रिपोर्टों में बदल जाए।
वेब सेवा सबसे सामान्य और व्यापक सेवा है और कई विभिन्न प्रकार की कमजोरियाँ मौजूद हैं।
डिफ़ॉल्ट पोर्ट: 80 (HTTP), 443(HTTPS)
इस कार्यप्रणाली में हम मानते हैं कि आप एक डोमेन (या उपडोमेन) पर हमला करने जा रहे हैं और केवल उसी पर। इसलिए, आपको इस कार्यप्रणाली को प्रत्येक खोजे गए डोमेन, उपडोमेन या IP पर लागू करना चाहिए जिसमें अनिश्चित वेब सर्वर हो।
जांचें कि क्या चल रहे सर्वर संस्करण के लिए कोई ज्ञात भेद्यताएँ हैं। HTTP हेडर और प्रतिक्रिया के कुकीज़ तकनीकों और/या संस्करण की पहचान करने के लिए बहुत उपयोगी हो सकते हैं। Nmap स्कैन सर्वर संस्करण की पहचान कर सकता है, लेकिन यह उपकरण भी उपयोगी हो सकते हैं whatweb, webtech या https://builtwith.com/:
Search for वेब एप्लिकेशन के संस्करण में कमजोरियों
विभिन्न प्रसिद्ध प्रौद्योगिकियों में कमजोरियों को खोजने के लिए कुछ ट्रिक्स:
ध्यान में रखें कि एक ही डोमेन विभिन्न पोर्ट्स, फोल्डर्स और सबडोमेन में विभिन्न प्रौद्योगिकियों का उपयोग कर सकता है। यदि वेब एप्लिकेशन किसी प्रसिद्ध प्रौद्योगिकी/प्लेटफ़ॉर्म का उपयोग कर रहा है या कोई अन्य, तो इंटरनेट पर नए ट्रिक्स खोजना न भूलें (और मुझे बताएं!)।
यदि एप्लिकेशन का स्रोत कोड github में उपलब्ध है, तो एप्लिकेशन का व्हाइट बॉक्स परीक्षण करने के अलावा, वर्तमान ब्लैक-बॉक्स परीक्षण के लिए कुछ जानकारी जो उपयोगी हो सकती है:
क्या कोई चेंज-लॉग या रीडमी या संस्करण फ़ाइल है या कुछ भी जिसमें संस्करण जानकारी वेब के माध्यम से उपलब्ध है?
क्रेडेंशियल्स कैसे और कहाँ सहेजे जाते हैं? क्या कोई (उपलब्ध?) फ़ाइल है जिसमें क्रेडेंशियल्स (उपयोगकर्ता नाम या पासवर्ड) हैं?
क्या पासवर्ड सादा पाठ में हैं, एन्क्रिप्टेड हैं या कौन सा हैशिंग एल्गोरिदम उपयोग किया गया है?
क्या यह कुछ एन्क्रिप्ट करने के लिए कोई मास्टर की का उपयोग कर रहा है? कौन सा एल्गोरिदम उपयोग किया गया है?
क्या आप किसी कमजोरी का शोषण करके इन फ़ाइलों में से किसी तक पहुँच सकते हैं?
क्या github में कोई दिलचस्प जानकारी है (हल की गई और न हल की गई) समस्याएँ? या कमिट इतिहास में (शायद कुछ पासवर्ड जो एक पुराने कमिट में डाला गया)?
यदि CMS का उपयोग किया गया है तो स्कैनर चलाना न भूलें, शायद कुछ रोचक पाया जाए:
Clusterd: JBoss, ColdFusion, WebLogic, Tomcat, Railo, Axis2, Glassfish CMSScan: WordPress, Drupal, Joomla, vBulletin वेबसाइटों के लिए सुरक्षा मुद्दे। (GUI) VulnX: Joomla, Wordpress, Drupal, PrestaShop, Opencart CMSMap: (W)ordpress, (J)oomla, (D)rupal या (M)oodle droopscan: Drupal, Joomla, Moodle, Silverstripe, Wordpress
इस बिंदु पर आपके पास क्लाइंट द्वारा उपयोग किए जा रहे वेब सर्वर की कुछ जानकारी होनी चाहिए (यदि कोई डेटा दिया गया है) और परीक्षण के दौरान ध्यान में रखने के लिए कुछ तरकीबें होनी चाहिए। यदि आप भाग्यशाली हैं, तो आपने एक CMS भी पाया है और कुछ स्कैनर चलाए हैं।
इस बिंदु से हम वेब एप्लिकेशन के साथ इंटरैक्ट करना शुरू करने जा रहे हैं।
दिलचस्प जानकारी के साथ डिफ़ॉल्ट पृष्ठ:
/robots.txt
/sitemap.xml
/crossdomain.xml
/clientaccesspolicy.xml
/.well-known/
मुख्य और द्वितीयक पृष्ठों में टिप्पणियों की भी जांच करें।
त्रुटियों को मजबूर करना
वेब सर्वर अजीब डेटा भेजे जाने पर अप्रत्याशित रूप से व्यवहार कर सकते हैं। इससे कमजोरियों या संवेदनशील जानकारी का खुलासा हो सकता है।
नकली पृष्ठों तक पहुँचें जैसे /whatever_fake.php (.aspx,.html,.etc)
त्रुटियाँ उत्पन्न करने के लिए "[]", "]]", और "[[" को कुकी मान और पैरामीटर मानों में जोड़ें
URL के अंत में /~randomthing/%s
के रूप में इनपुट देकर त्रुटि उत्पन्न करें
PATCH, DEBUG या गलत जैसे FAKE जैसे विभिन्न HTTP क्रियाएँ आज़माएँ
यदि आप पाते हैं कि WebDav सक्षम है लेकिन आपके पास रूट फ़ोल्डर में फ़ाइलें अपलोड करने के लिए पर्याप्त अनुमतियाँ नहीं हैं, तो प्रयास करें:
ब्रूट फोर्स क्रेडेंशियल्स
वेब पृष्ठ के अंदर अन्य फ़ोल्डरों में फ़ाइलें अपलोड करने के लिए WebDav के माध्यम से फ़ाइलें अपलोड करें। आपको अन्य फ़ोल्डरों में फ़ाइलें अपलोड करने की अनुमति हो सकती है।
यदि एप्लिकेशन HTTPS के उपयोगकर्ता को किसी भी भाग में मजबूर नहीं कर रहा है, तो यह MitM के लिए कमजोर है
यदि एप्लिकेशन HTTP का उपयोग करके संवेदनशील डेटा (पासवर्ड) भेज रहा है। तो यह एक उच्च कमजोरी है।
कमजोरियों के लिए जांचने के लिए testssl.sh का उपयोग करें (बग बाउंटी कार्यक्रमों में शायद इस प्रकार की कमजोरियाँ स्वीकार नहीं की जाएँगी) और कमजोरियों को फिर से जांचने के लिए a2sv का उपयोग करें:
Information about SSL/TLS vulnerabilities:
वेब के अंदर किसी प्रकार का स्पाइडर लॉन्च करें। स्पाइडर का लक्ष्य जितने संभव हो सके रास्ते ढूंढना है जो परीक्षण किए गए एप्लिकेशन से हैं। इसलिए, वेब क्रॉलिंग और बाहरी स्रोतों का उपयोग करके जितने संभव हो सके वैध रास्ते खोजे जाने चाहिए।
gospider (go): HTML स्पाइडर, JS फ़ाइलों में LinkFinder और बाहरी स्रोत (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com)।
hakrawler (go): HML स्पाइडर, JS फ़ाइलों के लिए LinkFider और बाहरी स्रोत के रूप में Archive.org के साथ।
dirhunt (python): HTML स्पाइडर, "जूसि फ़ाइलों" को भी इंगित करता है।
evine (go): इंटरैक्टिव CLI HTML स्पाइडर। यह Archive.org में भी खोजता है।
meg (go): यह उपकरण एक स्पाइडर नहीं है लेकिन यह उपयोगी हो सकता है। आप बस एक फ़ाइल निर्दिष्ट कर सकते हैं जिसमें होस्ट और एक फ़ाइल जिसमें रास्ते हैं और मेग प्रत्येक होस्ट पर प्रत्येक रास्ता लाएगा और प्रतिक्रिया को सहेजेगा।
urlgrab (go): JS रेंडरिंग क्षमताओं के साथ HTML स्पाइडर। हालाँकि, ऐसा लगता है कि यह अप्रबंधित है, पूर्व-संकलित संस्करण पुराना है और वर्तमान कोड संकलित नहीं होता है।
gau (go): HTML स्पाइडर जो बाहरी प्रदाताओं (wayback, otx, commoncrawl) का उपयोग करता है।
ParamSpider: यह स्क्रिप्ट URL खोजेगी जिसमें पैरामीटर होंगे और उन्हें सूचीबद्ध करेगी।
galer (go): JS रेंडरिंग क्षमताओं के साथ HTML स्पाइडर।
LinkFinder (python): HTML स्पाइडर, JS फ़ाइलों में नए रास्ते खोजने में सक्षम JS ब्यूटीफाई क्षमताओं के साथ। JSScanner पर भी नज़र डालना फायदेमंद हो सकता है, जो LinkFinder का एक रैपर है।
goLinkFinder (go): HTML स्रोत और एम्बेडेड जावास्क्रिप्ट फ़ाइलों में एंडपॉइंट्स निकालने के लिए। बग हंटर्स, रेड टीमर्स, इन्फोसेक निन्जाओं के लिए उपयोगी।
JSParser (python2.7): एक पायथन 2.7 स्क्रिप्ट जो टॉर्नेडो और JSBeautifier का उपयोग करके जावास्क्रिप्ट फ़ाइलों से सापेक्ष URL को पार्स करती है। AJAX अनुरोधों को आसानी से खोजने के लिए उपयोगी। ऐसा लगता है कि यह अप्रबंधित है।
relative-url-extractor (ruby): एक फ़ाइल (HTML) दी गई है, यह निफ्टी नियमित अभिव्यक्ति का उपयोग करके URL को निकालता है और बदसूरत (मिनिफाई) फ़ाइलों से सापेक्ष URL को खोजता है और निकालता है।
JSFScan (bash, कई उपकरण): कई उपकरणों का उपयोग करके JS फ़ाइलों से दिलचस्प जानकारी इकट्ठा करें।
subjs (go): JS फ़ाइलें खोजें।
page-fetch (go): एक हेडलेस ब्राउज़र में एक पृष्ठ लोड करें और सभी URL प्रिंट करें जो पृष्ठ को लोड करने के लिए लोड किए गए हैं।
Feroxbuster (rust): सामग्री खोज उपकरण जो पिछले उपकरणों के कई विकल्पों को मिलाता है।
Javascript Parsing: JS फ़ाइलों में पथ और पैरामीटर खोजने के लिए एक बर्प एक्सटेंशन।
Sourcemapper: एक उपकरण जो .js.map URL दिया गया है, आपको ब्यूटीफाइड JS कोड प्राप्त करेगा।
xnLinkFinder: यह एक उपकरण है जिसका उपयोग किसी दिए गए लक्ष्य के लिए एंडपॉइंट्स खोजने के लिए किया जाता है।
waymore: वेबैक मशीन से लिंक खोजें (जवाबों को वेबैक में डाउनलोड करना और अधिक लिंक की तलाश करना)।
HTTPLoot (go): क्रॉल करें (यहां तक कि फ़ॉर्म भरकर) और विशिष्ट regexes का उपयोग करके संवेदनशील जानकारी खोजें।
SpiderSuite: स्पाइडर सूट एक उन्नत मल्टी-फीचर GUI वेब सुरक्षा क्रॉलर/स्पाइडर है जिसे साइबर सुरक्षा पेशेवरों के लिए डिज़ाइन किया गया है।
jsluice (go): यह एक Go पैकेज और कमांड-लाइन टूल है जो जावास्क्रिप्ट स्रोत कोड से URL, पथ, रहस्यों और अन्य दिलचस्प डेटा निकालने के लिए है।
ParaForge: ParaForge एक सरल बर्प सूट एक्सटेंशन है जो फज़िंग और एन्यूमरेशन के लिए कस्टम वर्डलिस्ट बनाने के लिए अनुरोध से पैरामीटर और एंडपॉइंट्स निकालता है।
katana (go): इसके लिए शानदार उपकरण।
Crawley (go): यह प्रिंट करता है हर लिंक जिसे यह खोजने में सक्षम है।
रूट फ़ोल्डर से ब्रूट-फोर्सिंग शुरू करें और सुनिश्चित करें कि इस विधि का उपयोग करके पाई गई सभी डायरेक्टरीज़ को ब्रूट-फोर्स करें और स्पाइडरिंग द्वारा खोजी गई सभी डायरेक्टरीज़ को। उपकरण:
Dirb / Dirbuster - काली में शामिल, पुराना (और धीमा) लेकिन कार्यात्मक। स्वचालित-हस्ताक्षरित प्रमाणपत्रों और पुनरावृत्त खोज की अनुमति देता है। अन्य विकल्पों की तुलना में बहुत धीमा।
Dirsearch (python): यह स्वचालित-हस्ताक्षरित प्रमाणपत्रों की अनुमति नहीं देता लेकिन पुनरावृत्त खोज की अनुमति देता है।
Gobuster (go): यह स्वचालित-हस्ताक्षरित प्रमाणपत्रों की अनुमति देता है, इसमें पुनरावृत्त खोज नहीं है।
Feroxbuster - तेज, पुनरावृत्त खोज का समर्थन करता है।
wfuzz wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ
ffuf - तेज: ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ
uro (python): यह एक स्पाइडर नहीं है बल्कि एक उपकरण है जो पाई गई URL की सूची दी गई है, "डुप्लिकेट" URL को हटाने के लिए।
Scavenger: बर्प एक्सटेंशन जो विभिन्न पृष्ठों के बर्प इतिहास से डायरेक्टरीज़ की एक सूची बनाने के लिए।
TrashCompactor: कार्यक्षमता के साथ डुप्लिकेट URL को हटाएं (JS आयात के आधार पर)।
Chamaleon: यह उपयोग की गई तकनीकों का पता लगाने के लिए wapalyzer का उपयोग करता है और उपयोग करने के लिए वर्डलिस्ट का चयन करता है।
Recommended dictionaries:
raft-large-directories-lowercase.txt
directory-list-2.3-medium.txt
RobotsDisallowed/top10000.txt
/usr/share/wordlists/dirb/common.txt
/usr/share/wordlists/dirb/big.txt
/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
ध्यान दें कि जब भी ब्रूट-फोर्सिंग या स्पाइडरिंग के दौरान एक नया डायरेक्टरी खोजा जाता है, तो इसे ब्रूट-फोर्स किया जाना चाहिए।
Broken link checker: HTMLs के अंदर टूटे हुए लिंक खोजें जो अधिग्रहण के लिए प्रवण हो सकते हैं।
File Backups: एक बार जब आप सभी फ़ाइलें खोज लेते हैं, तो सभी निष्पादन योग्य फ़ाइलों के बैकअप की तलाश करें (".php", ".aspx"...)। बैकअप का नामकरण करने के लिए सामान्य भिन्नताएँ हैं: file.ext~, #file.ext#, ~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp और file.old. आप bfac या backup-gen** का उपयोग भी कर सकते हैं।**
Discover new parameters: आप Arjun, parameth, x8 और Param Miner जैसे उपकरणों का उपयोग करके छिपे हुए पैरामीटर खोज सकते हैं। यदि आप कर सकते हैं, तो आप प्रत्येक निष्पादन योग्य वेब फ़ाइल पर छिपे हुए पैरामीटर खोजने का प्रयास कर सकते हैं।
Arjun सभी डिफ़ॉल्ट वर्डलिस्ट: https://github.com/s0md3v/Arjun/tree/master/arjun/db
Param-miner “params” : https://github.com/PortSwigger/param-miner/blob/master/resources/params
Assetnote “parameters_top_1m”: https://wordlists.assetnote.io/
nullenc0de “params.txt”: https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773
Comments: सभी फ़ाइलों की टिप्पणियों की जांच करें, आप क्रेडेंशियल्स या छिपी हुई कार्यक्षमता पा सकते हैं।
यदि आप CTF खेल रहे हैं, तो एक "सामान्य" चाल है जानकारी को छिपाना पृष्ठ के दाईं ओर टिप्पणियों के अंदर (स्रोत कोड को ब्राउज़र के साथ खोलने पर डेटा नहीं देखने के लिए सैकड़ों स्पेस का उपयोग करके)। दूसरी संभावना यह है कि कई नए लाइनों का उपयोग करें और पृष्ठ के नीचे एक टिप्पणी में जानकारी छिपाएं।
API keys: यदि आप कोई API कुंजी पाते हैं, तो विभिन्न प्लेटफार्मों की API कुंजी का उपयोग करने के लिए एक गाइड है: keyhacks, zile, truffleHog, SecretFinder, RegHex, DumpsterDive, EarlyBird
Google API keys: यदि आप कोई API कुंजी पाते हैं जो AIzaSyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik की तरह दिखती है, तो आप यह जांचने के लिए प्रोजेक्ट gmapapiscanner का उपयोग कर सकते हैं कि कुंजी किस API तक पहुँच सकती है।
S3 Buckets: स्पाइडरिंग करते समय देखें कि क्या कोई सबडोमेन या कोई लिंक किसी S3 बकेट से संबंधित है। इस मामले में, **बकेट के अनुमतियों की जांच करें।
जब आप स्पाइडरिंग और ब्रूट-फोर्सिंग कर रहे होते हैं, तो आप दिलचस्प चीजें पा सकते हैं जिन पर आपको ध्यान देना चाहिए।
Interesting files
CSS फ़ाइलों के अंदर अन्य फ़ाइलों के लिए लिंक की तलाश करें।
यदि आप एक .env पाते हैं तो API कुंजी, DB पासवर्ड और अन्य जानकारी मिल सकती है।
यदि आप API एंडपॉइंट्स पाते हैं तो आप उन्हें भी परीक्षण करना चाहिए। ये फ़ाइलें नहीं हैं, लेकिन शायद "उनकी तरह" दिखेंगी।
JS फ़ाइलें: स्पाइडरिंग अनुभाग में कई उपकरणों का उल्लेख किया गया था जो JS फ़ाइलों से पथ निकाल सकते हैं। इसके अलावा, यह प्रत्येक JS फ़ाइल की निगरानी करना दिलचस्प होगा, क्योंकि कुछ अवसरों पर, एक परिवर्तन यह संकेत दे सकता है कि कोड में एक संभावित भेद्यता पेश की गई है। आप उदाहरण के लिए JSMon** का उपयोग कर सकते हैं।**
Javascript Deobfuscator and Unpacker: https://lelinhtinh.github.io/de4js/, https://www.dcode.fr/javascript-unobfuscator
Javascript Beautifier: http://jsbeautifier.org/, http://jsnice.org/
JsFuck deobfuscation (जावास्क्रिप्ट के साथ वर्ण:"[]!+" https://enkhee-osiris.github.io/Decoder-JSFuck/)
TrainFuck: +72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.
कई अवसरों पर, आपको उपयोग की गई नियमित अभिव्यक्तियों को समझने की आवश्यकता होगी। यह उपयोगी होगा: https://regex101.com/ या https://pythonium.net/regex
आप उन फ़ाइलों की भी निगरानी कर सकते हैं जहां फ़ॉर्म का पता लगाया गया था, क्योंकि पैरामीटर में परिवर्तन या नए फ़ॉर्म का प्रकट होना एक संभावित नए संवेदनशील कार्यक्षमता का संकेत दे सकता है।
403 Forbidden/Basic Authentication/401 Unauthorized (bypass)
403 & 401 Bypasses502 Proxy Error
यदि कोई पृष्ठ उस कोड के साथ प्रतिक्रिया करता है, तो यह शायद एक खराब कॉन्फ़िगर किया गया प्रॉक्सी है। यदि आप एक HTTP अनुरोध भेजते हैं जैसे: GET https://google.com HTTP/1.1
(होस्ट हेडर और अन्य सामान्य हेडर के साथ), तो प्रॉक्सी google.com तक पहुँचने की कोशिश करेगा और आप एक SSRF पाएंगे।
NTLM Authentication - Info disclosure
यदि चल रहा सर्वर प्रमाणीकरण के लिए Windows है या आप अपने क्रेडेंशियल्स के लिए एक लॉगिन पाते हैं (और डोमेन नाम के लिए पूछता है), तो आप जानकारी का खुलासा कर सकते हैं।
हेडर भेजें: “Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”
और जिस तरह से NTLM प्रमाणीकरण काम करता है, सर्वर "WWW-Authenticate" हेडर के अंदर आंतरिक जानकारी (IIS संस्करण, Windows संस्करण...) के साथ प्रतिक्रिया देगा।
आप nmap प्लगइन "http-ntlm-info.nse" का उपयोग करके इसे स्वचालित कर सकते हैं।
HTTP Redirect (CTF)
यह संभव है कि Redirection के अंदर सामग्री डाली जाए। यह सामग्री उपयोगकर्ता को नहीं दिखाई देगी (क्योंकि ब्राउज़र रीडायरेक्शन को निष्पादित करेगा) लेकिन वहाँ कुछ छिपा हो सकता है।
अब जब वेब एप्लिकेशन की एक व्यापक सूची बनाई गई है, तो संभावित भेद्यताओं की जांच करने का समय है। आप चेकलिस्ट यहाँ पा सकते हैं:
Web Vulnerabilities Methodologyवेब वल्न्स के बारे में अधिक जानकारी प्राप्त करें:
आप https://github.com/dgtlmoon/changedetection.io जैसे उपकरणों का उपयोग करके पृष्ठों की निगरानी कर सकते हैं ताकि संभावित भेद्यताओं को डालने वाले संशोधनों का पता लगाया जा सके।
Get a hacker's perspective on your web apps, network, and cloud
Find and report critical, exploitable vulnerabilities with real business impact. Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)