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 स्क्रिप्ट जो Tornado और 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 फ़ाइलों में पथ और पैरामीटर खोजने के लिए एक Burp एक्सटेंशन।
Sourcemapper: एक उपकरण जो .js.map URL दिए जाने पर आपको ब्यूटीफाइड JS कोड प्राप्त करेगा।
xnLinkFinder: यह एक उपकरण है जिसका उपयोग किसी दिए गए लक्ष्य के लिए एंडपॉइंट्स खोजने के लिए किया जाता है।
waymore: वेबैक मशीन से लिंक खोजें (जवाबों को वेबैक में डाउनलोड करते हुए और अधिक लिंक की तलाश करते हुए)।
HTTPLoot (go): क्रॉल करें (यहां तक कि फ़ॉर्म भरकर) और विशिष्ट regexes का उपयोग करके संवेदनशील जानकारी खोजें।
SpiderSuite: Spider Suite एक उन्नत मल्टी-फीचर GUI वेब सुरक्षा क्रॉलर/स्पाइडर है जिसे साइबर सुरक्षा पेशेवरों के लिए डिज़ाइन किया गया है।
jsluice (go): यह एक Go पैकेज और कमांड-लाइन उपकरण है जो जावास्क्रिप्ट स्रोत कोड से URL, पथ, रहस्य और अन्य दिलचस्प डेटा निकालने के लिए है।
ParaForge: ParaForge एक सरल Burp Suite एक्सटेंशन है जो फज़िंग और एन्यूमरेशन के लिए कस्टम वर्डलिस्ट बनाने के लिए अनुरोध से पैरामीटर और एंडपॉइंट्स निकालता है।
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: HTML में टूटे लिंक खोजें जो अधिग्रहण के लिए प्रवण हो सकते हैं।
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 का उपयोग कर सकते हैं कि कुंजी किस एपीआई तक पहुँच सकती है।
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://ooze.ninja/javascript/poisonjs/)
TrainFuck: +72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.
कई अवसरों पर आपको उपयोग की गई नियमित अभिव्यक्तियों को समझने की आवश्यकता होगी, यह उपयोगी होगा: https://regex101.com/
आप उन फ़ाइलों की भी निगरानी कर सकते हैं जहां फ़ॉर्म का पता लगाया गया था, क्योंकि पैरामीटर में परिवर्तन या नए फ़ॉर्म का प्रकट होना एक संभावित नए संवेदनशील कार्यक्षमता का संकेत दे सकता है।
403 Forbidden/Basic Authentication/401 Unauthorized (bypass)
502 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 के अंदर सामग्री डाली जाए। यह सामग्री उपयोगकर्ता को नहीं दिखाई देगी (क्योंकि ब्राउज़र पुनर्निर्देशन को निष्पादित करेगा) लेकिन वहाँ कुछ छिपा हो सकता है।
अब जब वेब एप्लिकेशन की एक व्यापक सूची बनाई गई है, तो संभावित भेद्यताओं की जांच करने का समय है। आप चेकलिस्ट यहाँ पा सकते हैं:
वेब वल्न्स के बारे में अधिक जानकारी प्राप्त करें:
आप 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)