hacktricks/network-services-pentesting/pentesting-web
2024-09-27 11:27:55 +00:00
..
buckets Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:20:41 +00:00
drupal Translated ['binary-exploitation/libc-heap/README.md', 'binary-exploitat 2024-09-23 23:34:08 +00:00
electron-desktop-apps Translated ['binary-exploitation/libc-heap/README.md', 'binary-exploitat 2024-09-19 16:40:05 +00:00
php-tricks-esp Translated ['network-services-pentesting/pentesting-web/php-tricks-esp/R 2024-09-05 18:59:52 +00:00
tomcat Translated ['README.md', 'crypto-and-stego/hash-length-extension-attack. 2024-09-04 13:36:53 +00:00
403-and-401-bypasses.md Translated ['network-services-pentesting/512-pentesting-rexec.md', 'netw 2024-08-04 15:19:19 +00:00
aem-adobe-experience-cloud.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:20:41 +00:00
angular.md Translated ['a.i.-exploiting/bra.i.nsmasher-presentation/BIM_Bruteforcer 2024-02-08 23:20:46 +00:00
apache.md Translated ['network-services-pentesting/pentesting-web/apache.md', 'pen 2024-08-19 11:12:33 +00:00
artifactory-hacking-guide.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:20:41 +00:00
bolt-cms.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:47:32 +00:00
cgi.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:20:41 +00:00
code-review-tools.md Translated ['network-services-pentesting/pentesting-web/code-review-tool 2024-09-27 11:27:55 +00:00
dotnetnuke-dnn.md Translated ['crypto-and-stego/cryptographic-algorithms/unpacking-binarie 2024-07-19 04:55:01 +00:00
drupal.md Translated ['binary-exploitation/rop-return-oriented-programing/ret2lib/ 2024-05-02 16:10:18 +00:00
flask.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:47:32 +00:00
git.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:20:41 +00:00
golang.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:20:41 +00:00
grafana.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:20:41 +00:00
graphql.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:47:32 +00:00
gwt-google-web-toolkit.md Translated ['README.md', 'network-services-pentesting/pentesting-web/gwt 2024-02-09 00:34:57 +00:00
h2-java-sql-database.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:47:32 +00:00
iis-internet-information-services.md Translated ['README.md', 'crypto-and-stego/hash-length-extension-attack. 2024-09-04 13:36:53 +00:00
imagemagick-security.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:20:41 +00:00
jboss.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:47:32 +00:00
jira.md Translated ['binary-exploitation/libc-heap/README.md', 'binary-exploitat 2024-09-23 23:34:08 +00:00
joomla.md Translated ['network-services-pentesting/pentesting-web/drupal/README.md 2024-08-21 09:09:51 +00:00
jsp.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:47:32 +00:00
laravel.md Translated ['binary-exploitation/basic-stack-binary-exploitation-methodo 2024-07-18 22:17:20 +00:00
moodle.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:47:32 +00:00
nextjs.md Translated ['network-services-pentesting/pentesting-web/nextjs.md', 'pen 2024-08-18 15:54:42 +00:00
nginx.md Translated ['network-services-pentesting/512-pentesting-rexec.md', 'netw 2024-08-04 15:19:19 +00:00
nodejs-express.md Translated ['a.i.-exploiting/bra.i.nsmasher-presentation/BIM_Bruteforcer 2024-02-08 23:20:46 +00:00
prestashop.md Translated ['network-services-pentesting/pentesting-web/drupal/README.md 2024-08-21 09:09:51 +00:00
put-method-webdav.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:47:32 +00:00
python.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:20:41 +00:00
README.md Translated ['binary-exploitation/libc-heap/README.md', 'binary-exploitat 2024-09-23 23:34:08 +00:00
rocket-chat.md Translated ['generic-methodologies-and-resources/pentesting-methodology. 2024-08-31 16:27:41 +00:00
special-http-headers.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:47:32 +00:00
spring-actuators.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:47:32 +00:00
symphony.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:20:41 +00:00
tomcat.md Translated ['README.md', 'crypto-and-stego/hash-length-extension-attack. 2024-09-04 13:36:53 +00:00
uncovering-cloudflare.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:47:32 +00:00
vmware-esx-vcenter....md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:20:41 +00:00
waf-bypass.md Translated ['network-services-pentesting/11211-memcache/README.md', 'net 2024-02-09 11:16:10 +00:00
web-api-pentesting.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:47:32 +00:00
werkzeug.md Translated ['network-services-pentesting/512-pentesting-rexec.md', 'netw 2024-08-04 15:19:19 +00:00
wordpress.md Translated ['network-services-pentesting/pentesting-web/drupal/README.md 2024-08-21 09:09:51 +00:00

80,443 - Pentesting Web Methodology

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

यदि आप हैकिंग करियर में रुचि रखते हैं और अजेय को हैक करना चाहते हैं - हम भर्ती कर रहे हैं! (फ्लूएंट पोलिश लिखित और मौखिक आवश्यक).

{% embed url="https://www.stmcyber.com/careers" %}

Basic Info

वेब सेवा सबसे सामान्य और व्यापक सेवा है और कई विभिन्न प्रकार की कमजोरियाँ मौजूद हैं।

डिफ़ॉल्ट पोर्ट: 80 (HTTP), 443(HTTPS)

PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  ssl/https
nc -v domain.com 80 # GET / HTTP/1.0
openssl s_client -connect domain.com:443 # GET / HTTP/1.0

Web API Guidance

{% content-ref url="web-api-pentesting.md" %} web-api-pentesting.md {% endcontent-ref %}

Methodology summary

इस पद्धति में हम मानेंगे कि आप एक डोमेन (या उपडोमेन) पर हमला करने जा रहे हैं और केवल उसी पर। इसलिए, आपको इस पद्धति को प्रत्येक खोजे गए डोमेन, उपडोमेन या IP पर लागू करना चाहिए जिसमें अनिश्चित वेब सर्वर हो।

  • तकनीकों की पहचान करना शुरू करें जो वेब सर्वर द्वारा उपयोग की जा रही हैं। यदि आप तकनीक की सफलतापूर्वक पहचान कर सकते हैं तो परीक्षण के बाकी हिस्से के दौरान ध्यान में रखने के लिए तरकीबें देखें।
  • क्या तकनीक के संस्करण की कोई ज्ञात भेद्यता है?
  • क्या कोई प्रसिद्ध तकनीक का उपयोग किया जा रहा है? अधिक जानकारी निकालने के लिए कोई उपयोगी तरकीब?
  • क्या चलाने के लिए कोई विशेषीकृत स्कैनर है (जैसे wpscan)?
  • सामान्य प्रयोजन स्कैनर लॉन्च करें। आप कभी नहीं जानते कि वे कुछ खोजने जा रहे हैं या कुछ दिलचस्प जानकारी खोजने जा रहे हैं।
  • प्रारंभिक जांच से शुरू करें: रोबोट, साइटमैप, 404 त्रुटि और SSL/TLS स्कैन (यदि HTTPS)।
  • वेब पृष्ठ को स्पाइडरिंग करना शुरू करें: यह सभी संभावित फाइलों, फ़ोल्डरों और पैरामीटरों को खोजने का समय है। साथ ही, विशेष खोजों के लिए जांचें।
  • ध्यान दें कि जब भी ब्रूट-फोर्सिंग या स्पाइडरिंग के दौरान एक नया निर्देशिका खोजा जाता है, तो इसे स्पाइडर किया जाना चाहिए।
  • डायरेक्टरी ब्रूट-फोर्सिंग: सभी खोजे गए फ़ोल्डरों को ब्रूट फोर्स करने का प्रयास करें नए फाइलों और निर्देशिकाओं की खोज करते हुए।
  • ध्यान दें कि जब भी ब्रूट-फोर्सिंग या स्पाइडरिंग के दौरान एक नया निर्देशिका खोजा जाता है, तो इसे ब्रूट-फोर्स किया जाना चाहिए।
  • बैकअप जांच: सामान्य बैकअप एक्सटेंशन जोड़कर खोजी गई फाइलों के बैकअप खोजने का प्रयास करें।
  • ब्रूट-फोर्स पैरामीटर: छिपे हुए पैरामीटर खोजने का प्रयास करें।
  • एक बार जब आप सभी संभावित एंडपॉइंट्स की पहचान कर लेते हैं जो उपयोगकर्ता इनपुट स्वीकार करते हैं, तो इसके साथ संबंधित सभी प्रकार की भेद्यताओं की जांच करें।
  • इस चेकलिस्ट का पालन करें

Server Version (Vulnerable?)

Identify

जांचें कि क्या सर्वर संस्करण के लिए कोई ज्ञात भेद्यताएँ हैं जो चल रही हैं।
HTTP हेडर और प्रतिक्रिया के कुकीज़ तकनीकों और/या संस्करण की पहचान करने के लिए बहुत उपयोगी हो सकते हैं। Nmap स्कैन सर्वर संस्करण की पहचान कर सकता है, लेकिन यह उपकरण भी उपयोगी हो सकते हैं whatweb, webtech या https://builtwith.com/:

whatweb -a 1 <URL> #Stealthy
whatweb -a 3 <URL> #Aggresive
webtech -u <URL>
webanalyze -host https://google.com -crawl 2

Search for वेब एप्लिकेशन संस्करण की कमजोरियों

जांचें कि कोई WAF है या नहीं

वेब तकनीक के ट्रिक्स

कुछ ट्रिक्स विभिन्न प्रसिद्ध तकनीकों में कमजोरियों को खोजने के लिए:

ध्यान में रखें कि एक ही डोमेन विभिन्न पोर्ट्स, फोल्डर्स और सबडोमेन में विभिन्न तकनीकों का उपयोग कर सकता है।
यदि वेब एप्लिकेशन किसी प्रसिद्ध तकनीक/प्लेटफ़ॉर्म का उपयोग कर रहा है या कोई अन्य, तो इंटरनेट पर नए ट्रिक्स खोजना न भूलें (और मुझे बताएं!)।

स्रोत कोड समीक्षा

यदि एप्लिकेशन का स्रोत कोड github पर उपलब्ध है, तो एप्लिकेशन का अपना खुद का व्हाइट बॉक्स परीक्षण करने के अलावा, वर्तमान ब्लैक-बॉक्स परीक्षण के लिए कुछ जानकारी जो उपयोगी हो सकती है:

  • क्या कोई चेंज-लॉग या रीडमी या संस्करण फ़ाइल है या कुछ भी जिसमें संस्करण जानकारी वेब के माध्यम से उपलब्ध है?
  • क्रेडेंशियल्स कैसे और कहाँ सहेजे जाते हैं? क्या कोई (उपलब्ध?) फ़ाइल है जिसमें क्रेडेंशियल्स (उपयोगकर्ता नाम या पासवर्ड) हैं?
  • क्या पासवर्ड सादा पाठ में हैं, एन्क्रिप्टेड हैं या कौन सा हैशिंग एल्गोरिदम उपयोग किया गया है?
  • क्या यह कुछ एन्क्रिप्ट करने के लिए कोई मास्टर की का उपयोग कर रहा है? कौन सा एल्गोरिदम उपयोग किया गया है?
  • क्या आप किसी कमजोरी का शोषण करके इन फ़ाइलों में से किसी तक पहुँच सकते हैं?
  • क्या github में कोई दिलचस्प जानकारी है (हल की गई और न हल की गई) समस्याएँ? या कमिट इतिहास में (शायद कुछ पासवर्ड जो एक पुराने कमिट में डाला गया)?

{% content-ref url="code-review-tools.md" %} code-review-tools.md {% endcontent-ref %}

स्वचालित स्कैनर

सामान्य उद्देश्य स्वचालित स्कैनर

nikto -h <URL>
whatweb -a 4 <URL>
wapiti -u <URL>
W3af
zaproxy #You can use an API
nuclei -ut && nuclei -target <URL>

# https://github.com/ignis-sec/puff (client side vulns fuzzer)
node puff.js -w ./wordlist-examples/xss.txt -u "http://www.xssgame.com/f/m4KKGHi2rVUN/?query=FUZZ"

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

cmsmap [-f W] -F -d <URL>
wpscan --force update -e --url <URL>
joomscan --ec -u <URL>
joomlavs.rb #https://github.com/rastating/joomlavs

इस बिंदु पर आपके पास क्लाइंट द्वारा उपयोग किए जा रहे वेब सर्वर की कुछ जानकारी होनी चाहिए (यदि कोई डेटा दिया गया है) और परीक्षण के दौरान ध्यान में रखने के लिए कुछ तरकीबें होनी चाहिए। यदि आप भाग्यशाली हैं, तो आपने एक 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 सक्षम है लेकिन आपके पास रूट फ़ोल्डर में फ़ाइलें अपलोड करने के लिए पर्याप्त अनुमतियाँ नहीं हैं, तो प्रयास करें:

  • ब्रूट फ़ोर्स क्रेडेंशियल्स
  • वेब पृष्ठ के अंदर पाई गई फ़ोल्डरों के बाकी में WebDav के माध्यम से फ़ाइलें अपलोड करें। आपको अन्य फ़ोल्डरों में फ़ाइलें अपलोड करने की अनुमति हो सकती है।

SSL/TLS कमजोरियाँ

  • यदि एप्लिकेशन HTTPS के उपयोगकर्ता को किसी भी भाग में मजबूर नहीं कर रहा है, तो यह MitM के लिए कमजोर है
  • यदि एप्लिकेशन HTTP का उपयोग करके संवेदनशील डेटा (पासवर्ड) भेज रहा है। तो यह एक उच्च कमजोरी है।

कमजोरियों के लिए testssl.sh का उपयोग करें (बग बाउंटी कार्यक्रमों में शायद इस प्रकार की कमजोरियों को स्वीकार नहीं किया जाएगा) और कमजोरियों को फिर से जांचने के लिए a2sv का उपयोग करें:

./testssl.sh [--htmlfile] 10.10.10.10:443
#Use the --htmlfile to save the output inside an htmlfile also

# You can also use other tools, by testssl.sh at this momment is the best one (I think)
sslscan <host:port>
sslyze --regular <ip:port>

Information about 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 स्पाइडर, "जूसि फ़ाइलों" को भी इंगित करता है।
  • 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): यह प्रिंट करता है हर लिंक जिसे यह खोजने में सक्षम है।

Brute Force directories and files

रूट फ़ोल्डर से ब्रूट-फोर्सिंग शुरू करें और सुनिश्चित करें कि इस विधि का उपयोग करके पाई गई सभी डायरेक्टरीज़ को ब्रूट-फोर्स करें और स्पाइडरिंग द्वारा खोजी गई सभी डायरेक्टरीज़ को।
उपकरण:

  • 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:

ध्यान दें कि जब भी ब्रूट-फोर्सिंग या स्पाइडरिंग के दौरान एक नया डायरेक्टरी खोजा जाता है, तो इसे ब्रूट-फोर्स किया जाना चाहिए।

What to check on each file found

  • 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 का उपयोग कर सकते हैं कि कुंजी किस एपीआई तक पहुँच सकती है।
  • S3 Buckets: स्पाइडरिंग करते समय देखें कि क्या कोई सबडोमेन या कोई लिंक किसी S3 बकेट से संबंधित है। इस मामले में, **बकेट के अनुमतियों की जांच करें

Special findings

जब आप स्पाइडरिंग और ब्रूट-फोर्सिंग कर रहे होते हैं, तो आप दिलचस्प चीजें पा सकते हैं जिनका आपको ध्यान रखना चाहिए

Interesting files

  • CSS फ़ाइलों के अंदर अन्य फ़ाइलों के लिए लिंक की तलाश करें।
  • यदि आप एक .git फ़ाइल पाते हैं तो कुछ जानकारी निकाली जा सकती है
  • यदि आप एक .env पाते हैं तो API कुंजी, DB पासवर्ड और अन्य जानकारी मिल सकती है।
  • यदि आप API एंडपॉइंट्स पाते हैं तो आपको उन्हें भी परीक्षण करना चाहिए। ये फ़ाइलें नहीं हैं, लेकिन शायद "उनकी तरह" दिखेंगी।
  • JS फ़ाइलें: स्पाइडरिंग अनुभाग में कई उपकरणों का उल्लेख किया गया था जो JS फ़ाइलों से पथ निकाल सकते हैं। इसके अलावा, यह हर JS फ़ाइल की निगरानी करना दिलचस्प होगा, क्योंकि कुछ अवसरों पर, एक परिवर्तन यह संकेत दे सकता है कि कोड में एक संभावित भेद्यता पेश की गई थी। आप उदाहरण के लिए JSMon** का उपयोग कर सकते हैं।**
  • आपको RetireJS या JSHole के साथ खोजी गई JS फ़ाइलों की भी जांच करनी चाहिए कि क्या यह संवेदनशील है।
  • 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)

{% content-ref url="403-and-401-bypasses.md" %} 403-and-401-bypasses.md {% endcontent-ref %}

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)

यह संभव है कि रेडायरेक्शन के अंदर सामग्री डाली जाए। यह सामग्री उपयोगकर्ता को नहीं दिखाई देगी (क्योंकि ब्राउज़र रेडायरेक्शन को निष्पादित करेगा) लेकिन वहाँ कुछ छिपा हो सकता है।

Web Vulnerabilities Checking

अब जब वेब एप्लिकेशन की एक व्यापक सूची बनाई गई है, तो संभावित भेद्यताओं की जांच करने का समय है। आप चेकलिस्ट यहाँ पा सकते हैं:

{% content-ref url="../../pentesting-web/web-vulnerabilities-methodology.md" %} web-vulnerabilities-methodology.md {% endcontent-ref %}

वेब वल्न्स के बारे में अधिक जानकारी प्राप्त करें:

Monitor Pages for changes

आप https://github.com/dgtlmoon/changedetection.io जैसे उपकरणों का उपयोग करके पृष्ठों में संशोधनों की निगरानी कर सकते हैं जो संभावित भेद्यताओं को डाल सकते हैं।

यदि आप हैकिंग करियर में रुचि रखते हैं और अचूक को हैक करना चाहते हैं - हम भर्ती कर रहे हैं! (फ्लूएंट पोलिश लिखित और मौखिक आवश्यक है)।

{% embed url="https://www.stmcyber.com/careers" %}

HackTricks Automatic Commands

Protocol_Name: Web    #Protocol Abbreviation if there is one.
Port_Number:  80,443     #Comma separated if there is more than one.
Protocol_Description: Web         #Protocol Abbreviation Spelled out

Entry_1:
Name: Notes
Description: Notes for Web
Note: |
https://book.hacktricks.xyz/pentesting/pentesting-web

Entry_2:
Name: Quick Web Scan
Description: Nikto and GoBuster
Command: nikto -host {Web_Proto}://{IP}:{Web_Port} &&&& gobuster dir -w {Small_Dirlist} -u {Web_Proto}://{IP}:{Web_Port} && gobuster dir -w {Big_Dirlist} -u {Web_Proto}://{IP}:{Web_Port}

Entry_3:
Name: Nikto
Description: Basic Site Info via Nikto
Command: nikto -host {Web_Proto}://{IP}:{Web_Port}

Entry_4:
Name: WhatWeb
Description: General purpose auto scanner
Command: whatweb -a 4 {IP}

Entry_5:
Name: Directory Brute Force Non-Recursive
Description:  Non-Recursive Directory Brute Force
Command: gobuster dir -w {Big_Dirlist} -u {Web_Proto}://{IP}:{Web_Port}

Entry_6:
Name: Directory Brute Force Recursive
Description: Recursive Directory Brute Force
Command: python3 {Tool_Dir}dirsearch/dirsearch.py -w {Small_Dirlist} -e php,exe,sh,py,html,pl -f -t 20 -u {Web_Proto}://{IP}:{Web_Port} -r 10

Entry_7:
Name: Directory Brute Force CGI
Description: Common Gateway Interface Brute Force
Command: gobuster dir -u {Web_Proto}://{IP}:{Web_Port}/ -w /usr/share/seclists/Discovery/Web-Content/CGIs.txt -s 200

Entry_8:
Name: Nmap Web Vuln Scan
Description: Tailored Nmap Scan for web Vulnerabilities
Command: nmap -vv --reason -Pn -sV -p {Web_Port} --script=`banner,(http* or ssl*) and not (brute or broadcast or dos or external or http-slowloris* or fuzzer)` {IP}

Entry_9:
Name: Drupal
Description: Drupal Enumeration Notes
Note: |
git clone https://github.com/immunIT/drupwn.git for low hanging fruit and git clone https://github.com/droope/droopescan.git for deeper enumeration

Entry_10:
Name: WordPress
Description: WordPress Enumeration with WPScan
Command: |
?What is the location of the wp-login.php? Example: /Yeet/cannon/wp-login.php
wpscan --url {Web_Proto}://{IP}{1} --enumerate ap,at,cb,dbe && wpscan --url {Web_Proto}://{IP}{1} --enumerate u,tt,t,vp --passwords {Big_Passwordlist} -e

Entry_11:
Name: WordPress Hydra Brute Force
Description: Need User (admin is default)
Command: hydra -l admin -P {Big_Passwordlist} {IP} -V http-form-post '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location'

Entry_12:
Name: Ffuf Vhost
Description: Simple Scan with Ffuf for discovering additional vhosts
Command: ffuf -w {Subdomain_List}:FUZZ -u {Web_Proto}://{Domain_Name} -H "Host:FUZZ.{Domain_Name}" -c -mc all {Ffuf_Filters}

{% hint style="success" %} AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें
{% endhint %}