80,443 - Pentesting Web Methodology
अगर आप हैकिंग करियर में रुचि रखते हैं और अहैकेबल को हैक करना चाहते हैं - हम भर्ती कर रहे हैं! (फ्लूएंट पोलिश लिखित और बोली जानी चाहिए).
मूल जानकारी
वेब सेवा सबसे सामान्य और व्यापक सेवा है और बहुत सारे विभिन्न प्रकार की सुरक्षा गड़बड़ियां मौजूद हैं।
डिफ़ॉल्ट पोर्ट: 80 (HTTP), 443(HTTPS)
वेब एपीआई मार्गदर्शन
pageWeb API Pentestingमेथडोलॉजी सारांश
इस मेथडोलॉजी में हम मानेंगे कि आप एक डोमेन (या सबडोमेन) पर हमला करने जा रहे हैं और केवल उस पर। इसलिए, आपको प्राप्त हुए प्रत्येक डोमेन, सबडोमेन या आईपी पर इस मेथडोलॉजी को लागू करना चाहिए जिसमें अनिर्धारित वेब सर्वर है।
सर्वर संस्करण (विकल्पित?)
पहचानें
जांचें कि क्या सर्वर संस्करण के लिए कोई ज्ञात सुरक्षा दोष है। प्रतिक्रिया के HTTP हेडर और कुकी बहुत उपयोगी हो सकते हैं तकनीकों और/या संस्करण की पहचान के लिए। Nmap स्कैन सर्वर संस्करण की पहचान कर सकता है, लेकिन उपयोगी हो सकते हैं भी टूल्स whatweb, webtech या https://builtwith.com/:
वेब एप्लिकेशन की संस्करण की कमजोरियों की खोज के लिए खोज करें
क्या कोई WAF है
वेब तकनीक ट्रिक्स
कुछ ट्रिक्स जिनका उपयोग किया जा सकता है विभिन्न प्रसिद्ध तकनीकों में कमजोरियों की खोज के लिए:
ध्यान दें कि एक ही डोमेन विभिन्न तकनीकों का उपयोग कर सकता है विभिन्न पोर्ट्स, फोल्डर्स और सबडोमेन्स में. यदि वेब एप्लिकेशन किसी भी प्रसिद्ध तकनीक/प्लेटफॉर्म का उपयोग कर रहा है जो पहले सूचीबद्ध है या कोई अन्य, तो इंटरनेट पर नई ट्रिक्स खोजना न भूलें (और मुझे बताएं!).
स्रोत कोड समीक्षा
यदि एप्लिकेशन का स्रोत कोड github में उपलब्ध है, तो एप्लिकेशन का व्हाइट बॉक्स टेस्ट करने के अलावा वर्तमान ब्लैक-बॉक्स टेस्टिंग के लिए कुछ जानकारी उपयोगी हो सकती है:
क्या चेंज-लॉग या रीडमी या संस्करण फ़ाइल या कोई भी संस्करण जानकारी वेब के माध्यम से उपलब्ध है?
क्रेडेंशियल्स कैसे और कहाँ सहेजे गए हैं? क्या कोई (पहुंचने वाली?) फ़ाइल है जिसमें क्रेडेंशियल्स (उपयोगकर्ता नाम या पासवर्ड) हैं?
क्या पासवर्ड सादा पाठ में हैं, एन्क्रिप्टेड हैं या कौन सा हैशिंग एल्गोरिथ्म उपयोग किया गया है?
क्या इसका कोई मास्टर की उपयोग हो रहा है कुछ एन्क्रिप्ट करने के लिए? कौन सा एल्गोरिथ्म उपयोग किया गया है?
क्या आप किसी भी विकल्प का उपयोग करके इन फ़ाइलों में से किसी तक पहुंच सकते हैं?
क्या गिथब में कोई दिलचस्प जानकारी है (हल किया और नहीं हल किया) मुद्दे में? या कमिट इतिहास में (शायद कोई पासवर्ड पुराने कमिट में दर्ज किया गया हो)?
स्वचालित स्कैनर
सामान्य उद्देश्य स्वचालित स्कैनर
CMS स्कैनर
यदि 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 वर्ब का प्रयास करें
जांचें कि क्या आप फ़ाइलें अपलोड कर सकते हैं (PUT वर्ब, WebDav)
यदि आपको लगता है कि WebDav सक्षम है लेकिन आपके पास **मुख्य फ़ोल्डर में फ़ाइलें अपलोड करने के लिए पर्याप्त अनुमतियाँ नहीं हैं तो कोशिश करें:
Brute Force क्रेडेंशियल्स
WebDav के माध्यम से फ़ाइलें अपलोड करें वेब पेज के भीतर पाए गए बाकी फ़ोल्डर में। आपको अन्य फ़ोल्डर में फ़ाइलें अपलोड करने की अनुमति हो सकती है।
SSL/TLS दुर्बलताएँ
यदि एप्लिकेशन किसी भी भाग में HTTPS का उपयोग करने को बाध्य नहीं कर रहा है, तो यह MitM के लिए विकल्पशील है
यदि एप्लिकेशन HTTP का उपयोग करके संवेदनशील डेटा (पासवर्ड) भेज रहा है। तो यह एक उच्च विकल्पनीयता है।
testssl.sh का उपयोग दुर्बलताओं के लिए करें (बग बाउंटी कार्यक्रमों में शायद इस प्रकार की दुर्बलताएँ स्वीकार नहीं की जाएंगी) और a2sv का उपयोग करें दुर्बलताओं की पुनःजांच के लिए:
SSL/TLS vulnerabilities के बारे में जानकारी:
Spidering
वेब के अंदर किसी भी प्रकार के स्पाइडर को लॉन्च करें। स्पाइडर का उद्देश्य टेस्ट किए गए एप्लिकेशन से संभावित सभी पथों को खोजना है। इसलिए, वेब क्रॉलिंग और बाहरी स्रोतों का उपयोग करके संभावित सभी मान्य पथों को खोजने के लिए उपयोग किया जाना चाहिए।
gospider (go): HTML स्पाइडर, JS फ़ाइलों में LinkFinder और बाहरी स्रोत (Archive.org, CommonCrawl.org, VirusTotal.com, AlienVault.com)।
hakrawler (go): HML स्पाइडर, JS फ़ाइलों के लिए LinkFider और बाहरी स्रोत के रूप में Archive.org।
dirhunt (python): HTML स्पाइडर, "juicy files" को भी दर्शाता है।
evine (go): इंटरैक्टिव CLI HTML स्पाइडर। यह Archive.org में भी खोजता है।
meg (go): यह टूल एक स्पाइडर नहीं है लेकिन यह उपयोगी हो सकता है। आप सिर्फ होस्ट्स के साथ एक फ़ाइल और पथ के साथ इंडिकेट कर सकते हैं और meg हर होस्ट पर हर पथ को लाएगा और प्रतिक्रिया को सहेजेगा।
urlgrab (go): JS रेंडरिंग क्षमताओं के साथ HTML स्पाइडर। हालांकि, यह अपडेट नहीं हो रहा है, पूर्व-संकलित संस्करण पुराना है और वर्तमान कोड कंपाइल नहीं होता है।
gau (go): बाहरी प्रदाताओं का उपयोग करने वाला HTML स्पाइडर (wayback, otx, commoncrawl)।
ParamSpider: यह स्क्रिप्ट पैरामीटर के साथ URLs खोजेगा और उन्हें सूचीबद्ध करेगा।
galer (go): JS रेंडरिंग क्षमताओं के साथ HTML स्पाइडर।
LinkFinder (python): HTML स्पाइडर, JS फ़ाइलों में नए पथों की खोज करने की क्षमता। इसे देखने के लिए JSScanner को भी एक नजर डालना लायक हो सकता है, जो LinkFinder का एक रैपर है।
goLinkFinder (go): HTML स्रोत और एम्बेडेड जावास्क्रिप्ट फ़ाइलों में अंतबिंदुओं को निकालने के लिए। बग हंटर्स, रेड टीमर्स, इन्फोसेक निंजास के लिए उपयोगी।
JSParser (python2.7): एक पायथन 2.7 स्क्रिप्ट जो Tornado और JSBeautifier का उपयोग करके जावास्क्रिप्ट फ़ाइलों से संबंधित URLs को पार्स करता है। AJAX अनुरोधों को आसानी से खोजने के लिए उपयोगी है। अपडेट नहीं हो रहा लगता है।
relative-url-extractor (ruby): एक फ़ाइल (HTML) दी गई फ़ाइल से URLs को निकालेगा और उसमें से निकालने के लिए निफ़्टी नियमित अभिव्यक्ति का उपयोग करेगा।
JSFScan (bash, कई टूल): कई टूल्स का उपयोग करके JS फ़ाइलों से दिलचस्प जानकारी इकट्ठा करें।
subjs (go): JS फ़ाइलें खोजें।
page-fetch (go): एक पृष्ठ को एक headless ब्राउज़र में लोड करें और पृष्ठ लोड करने के लिए सभी urls को प्रिंट करें।
Feroxbuster (rust): कई पिछले उपकरणों के कई विकल्पों को मिलाकर सामग्री खोज उपकरण।
Javascript Parsing: एक बर्प एक्सटेंशन जो JS फ़ाइलों में पथ और पैरामीटर खोजने के लिए।
Sourcemapper: यह दिया गया .js.map URL आपको बीटीफाइड JS कोड देगा।
xnLinkFinder: यह एक उपकरण है जिसका उपयोग दिए गए लक्ष्य के लिए अंतबिंदुओं को खोजने के लिए किया जाता है।
waymore: Wayback मशीन से लिंक खोजें (जवाबों को डाउनलोड करना और अधिक लिंक खोजना)
HTTPLoot (go): फॉर्म भरकर (यहां तक कि फॉर्म भरकर) क्रॉल करें और विशेष रूप से regexes का उपयोग करके संवेदनशील जानकारी भी खोजें।
SpiderSuite: Spider Suite एक उन्नत मल्टी-फ़ीचर GUI वेब सुरक्षा क्रॉलर/स्पाइडर है जो साइबर सुरक्षा विशेषज्ञों के लिए डिज़ाइन किया गया है।
jsluice (go): यह एक गो पैकेज और कमांड-लाइन टूल है जो जावास्क्रिप्ट स्रोत को छुड़ाने, पथ, रहस्य और अन्य दिलचस्प डेटा को निकालने के लिए है।
ParaForge: ParaForge एक सरल Burp Suite एक्सटेंशन है जो अनुरोध से पैरामीटर और अंतबिंदुओं को निकालने के लिए है।
katana (go): इसके लिए शानदार उपकरण।
Brute Force directories and files
मूल फ़ोल्डर से ब्रूट-फ़ोर्सिंग शुरू करें और सुनिश्चित करें कि इस विधि का उपयोग करके सभी पाए गए डायरेक्टरी को ब्रूट-फ़ोर्स किया जाए और सभी डायरेक्टरी खोजी गई हों (आप इस ब्रूट-फ़ोर्सिंग को पुनरावृत्तिक रूप से कर सकते हैं और पाए गए डायरेक्टरी के नामों को उपयोग किए गए शब्दसूची के शुरू में जोड़ सकते हैं)। उपकरण:
Dirb / Dirbuster - Kali में शामिल है, पुराना (और धीमा) लेकिन कार्यकारी। ऑटो-साइन किए गए प्रमाणपत्र और पुनरावृत्तिक खोज की अनुमति देता है। अन्य विकल्पों की तुलना में बहुत धीमा है।
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): यह एक स्प
/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 में टूटी हुई लिंक्स खोजें जो लेने-देने के लिए संवेदनशील हो सकते हैं
फ़ाइल बैकअप्स: जब आप सभी फ़ाइलें पा लेते हैं, तो सभी एक्सीक्यूटेबल फ़ाइलों की बैकअप्स खोजें (".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** का भी उपयोग कर सकते हैं।**
नए पैरामीटर्स खोजें: आप 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
टिप्पणियाँ: सभी फ़ाइलों की टिप्पणियाँ जांचें, आप क्रेडेंशियल्स या छुपी हुई कार्यक्षमता पा सकते हैं।
यदि आप CTF खेल रहे हैं, तो "सामान्य" एक ट्रिक है कि डेटा को टिप्पणियों में छुपाना है पृष्ठ के दाएं ओर (ब्राउज़र के स्रोत कोड को खोलने पर डेटा दिखाई नहीं देगा) सैकड़ों अंतरिक्षों का उपयोग करके। दूसरा संभावना यह है कि कई नई लाइनें का उपयोग करके और वेब पृष्ठ के नीचे एक टिप्पणी में डेटा छुपाएं।
API कुंजीयाँ: यदि आपको कोई API कुंजी मिलती है तो एक मार्गदर्शिका है जो विभिन्न प्लेटफ़ॉर्मों की API कुंजियों का उपयोग कैसे करना है: keyhacks, zile, truffleHog, SecretFinder, RegHex, DumpsterDive, EarlyBird
Google API कुंजीयाँ: यदि आपको AIzaSyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik जैसी कोई API कुंजी मिलती है तो आप परियोजना gmapapiscanner का उपयोग करके यह जांच सकते हैं कि कुंजी किस APIs तक पहुंच सकती है।
S3 बकेट्स: स्पाइडरिंग के दौरान देखें कि क्या कोई सबडोमेन या कोई लिंक किसी S3 बकेट से संबंधित है। उस मामले में, बकेट की अनुमतियों की जांच करें।
विशेष खोज
स्पाइडरिंग और ब्रूट-फोर्सिंग करते समय आपको दिलचस्प चीजें मिल सकती हैं जिन पर आपको ध्यान देना होगा।
दिलचस्प फ़ाइलें
CSS फ़ाइलों में अन्य फ़ाइलों के लिंक खोजें।
यदि आपको एक .env मिलती है तो जानकारी जैसे एपीआई कुंजी, डीबीएस पासवर्ड और अन्य जानकारी पाई जा सकती है।
यदि आप एपीआई एंडपॉइंट्स पाते हैं तो आपको उन्हें भी टेस्ट करना चाहिए। ये फ़ाइलें नहीं हैं, लेकिन शायद उनसे "दिखने" की संभावना है।
JS फ़ाइलें: स्पाइडरिंग खंड में कई टूल्स उल्लेख किए गए थे जो JS फ़ाइलों से पथ निकाल सकते हैं। इसके अलावा, प्रत्येक मिली JS फ़ाइल का निगरानी करना भी दिलचस्प हो सकता है, क्योंकि कभी-कभी, कोड में एक संभावित कमजोरी शामिल कर दी गई हो सकती है। आप उदाहरण के लिए JSMon** का उपयोग कर सकते हैं।**
Javascript Deobfuscator और 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 निषिद्ध/बेसिक प्रमाणीकरण/401 अनधिकृत (बायपास)
page403 & 401 Bypasses502 प्रॉक्सी त्रुटि
यदि कोई पृष्ठ उस कोड के साथ प्रतिसाद देता है, तो यह शायद एक बुरी रूप से कॉन्फ़िगर किया गया प्रॉक्सी है। यदि आप एक HTTP अनुरोध भेजते हैं जैसे: GET https://google.com HTTP/1.1
(होस्ट हेडर और अन्य सामान्य हेडर्स के साथ), तो प्रॉक्सी google.com तक पहुंचने की कोशिश करेगा और आपने एक SSRF पाया होगा।
**NTLM प्रमाणीकरण - सूचना व
वेब सुरक्षा जांच
अब जब वेब एप्लिकेशन की व्यापक गणना पूरी हो गई है, तो समय है कई संभावित सुरक्षा दोषों की जांच करने का। आप यहाँ चेकलिस्ट पा सकते हैं:
pageWeb Vulnerabilities Methodologyवेब दोषों के बारे में अधिक जानकारी पाने के लिए:
परिवर्तनों के लिए पृष्ठों का मॉनिटर करें
आप https://github.com/dgtlmoon/changedetection.io जैसे उपकरणों का उपयोग करके पृष्ठों को मॉनिटर कर सकते हैं ताकि संशोधन जो सुरक्षा दोषों को डाल सकते हैं, उन्हें पहचाना जा सके।
यदि आप हैकिंग करियर में रुचि रखते हैं और अनहैकेबल को हैक करना चाहते हैं - हम भर्ती कर रहे हैं! (चुस्त पोलिश लिखने और बोलने की आवश्यकता है).
हैकट्रिक्स स्वचालित कमांड्स
Last updated