hacktricks/pentesting-web/web-tool-wfuzz.md
Translator workflow 75e8745ba3 Translated to Hindi
2023-11-06 08:38:02 +00:00

25 KiB

वेब टूल - WFuzz

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

वेब एप्लिकेशनों की मूल्यांकन में कार्य को सुगम बनाने के लिए एक टूल।

WFuzz को वेब एप्लिकेशनों की मूल्यांकन में कार्य को सुगम बनाने के लिए बनाया गया है और यह एक सरल अवधारणा पर आधारित है: यह एक दिए गए payload के मान के साथ FUZZ कीवर्ड के किसी भी संदर्भ को प्रतिस्थापित करता है।

स्थापना

Kali में स्थापित

Github: https://github.com/xmendez/wfuzz

pip install wfuzz

फ़िल्टरिंग विकल्प

-c, --code

इस विकल्प का उपयोग एक या एक से अधिक HTTP स्थिति कोड के लिए किया जा सकता है।

-w, --wordlist

इस विकल्प का उपयोग एक शब्द सूची फ़ाइल के लिए किया जा सकता है।

-r, --regex

इस विकल्प का उपयोग एक नियमित अभिव्यक्ति के लिए किया जा सकता है।

-s, --size

इस विकल्प का उपयोग एक निर्दिष्ट आकार के लिए किया जा सकता है।

-e, --encoding

इस विकल्प का उपयोग एक निर्दिष्ट एन्कोडिंग के लिए किया जा सकता है।

-H, --header

इस विकल्प का उपयोग एक HTTP हेडर के लिए किया जा सकता है।

-D, --data

इस विकल्प का उपयोग एक POST डेटा के लिए किया जा सकता है।

-X, --request

इस विकल्प का उपयोग एक निर्दिष्ट अनुरोध विधि के लिए किया जा सकता है।

-t, --threads

इस विकल्प का उपयोग एक निर्दिष्ट संख्या में थ्रेड के लिए किया जा सकता है।

-p, --proxy

इस विकल्प का उपयोग एक प्रॉक्सी सर्वर के लिए किया जा सकता है।

-x, --proxy-auth

इस विकल्प का उपयोग प्रॉक्सी सर्वर के लिए प्रमाणीकरण के लिए किया जा सकता है।

इस विकल्प का उपयोग एक कुकी हेडर के लिए किया जा सकता है।

-d, --delay

इस विकल्प का उपयोग एक विशेष समय अंतराल के लिए किया जा सकता है।

-F, --follow

इस विकल्प का उपयोग रेडायरेक्ट के बाद अनुरोध को फ़ॉलो करने के लिए किया जा सकता है।

-L, --location

इस विकल्प का उपयोग रेडायरेक्ट के बाद अनुरोध को फ़ॉलो करने के लिए किया जा सकता है।

-R, --referer

इस विकल्प का उपयोग एक रेफ़रर हेडर के लिए किया जा सकता है।

-T, --timeout

इस विकल्प का उपयोग एक निर्दिष्ट समय सीमा के लिए किया जा सकता है।

-A, --auth

इस विकल्प का उपयोग एक प्रमाणीकरण हेडर के लिए किया जा सकता है।

-U, --user-agent

इस विकल्प का उपयोग एक उपयोगकर्ता एजेंट हेडर के लिए किया जा सकता है।

-H, --help

इस विकल्प का उपयोग मदद संदेश के लिए किया जा सकता है।

-V, --version

इस विकल्प का उपयोग संस्करण संदेश के लिए किया जा सकता है।

--hs/ss "regex" #Hide/Show
#Simple example, match a string: "Invalid username"
#Regex example: "Invalid *"

--hc/sc CODE #Hide/Show by code in response
--hl/sl NUM #Hide/Show by number of lines in response
--hw/sw NUM #Hide/Show by number of words in response
--hh/sh NUM #Hide/Show by number of chars in response
--hc/sc NUM #Hide/Show by response code

आउटपुट विकल्प

The wfuzz tool provides several options for displaying the output of the scan. These options can be used to customize the format and level of detail in the results.

-o or --output

This option allows you to specify the output file where the results will be saved. You can provide a filename or a path to save the file in a specific directory. For example:

wfuzz -o /path/to/output.txt

-f or --format

The --format option allows you to specify the format of the output. By default, the tool uses the plain format, which displays the results in a simple and readable format. However, you can choose from other formats such as json, xml, csv, html, and markdown. For example:

wfuzz -o /path/to/output.txt -f json

-c or --columns

The --columns option allows you to specify the columns to be displayed in the output. You can choose from a list of available columns such as url, status, length, words, lines, time, size, redirect, cookies, headers, body, error, match, words_found, lines_found, time_total, size_total, redirect_total, cookies_total, headers_total, body_total, error_total, match_total. For example:

wfuzz -o /path/to/output.txt -c "url,status,words_found"

-s or --separator

The --separator option allows you to specify the separator character used in the output. By default, the tool uses a comma (,) as the separator. However, you can choose a different character such as a tab (\t) or a pipe (|). For example:

wfuzz -o /path/to/output.txt -s "|"

These output options provide flexibility in customizing the format and content of the scan results according to your needs.

wfuzz -e printers #Prints the available output formats
-f /tmp/output,csv #Saves the output in that location in csv format

इनकोडर विकल्प

There are several options available for encoders:

  • URL Encoding: This encoding technique replaces special characters with their corresponding URL-encoded representation. For example, the space character is replaced with "%20".

  • HTML Encoding: HTML encoding replaces special characters with their corresponding HTML entity codes. For example, the less than symbol "<" is replaced with "<".

  • Base64 Encoding: Base64 encoding converts binary data into a string of ASCII characters. This encoding is commonly used for transmitting binary data over text-based protocols.

  • Hex Encoding: Hex encoding converts each byte of data into its hexadecimal representation. This encoding is often used for obfuscation purposes.

  • Unicode Encoding: Unicode encoding represents characters using their Unicode code points. This encoding is useful for handling non-ASCII characters.

  • UTF-8 Encoding: UTF-8 encoding is a variable-length encoding scheme that can represent any Unicode character. It is widely used for encoding text in web applications.

  • Double URL Encoding: Double URL encoding applies URL encoding twice to a string. This can be used to bypass certain security filters that only decode the string once.

  • Mixed Encoding: Mixed encoding combines multiple encoding techniques to obfuscate data. This can make it more difficult for security controls to detect and decode the encoded data.

  • Custom Encoding: Custom encoding techniques can be created to suit specific requirements. These techniques may involve manipulating the data in unique ways to achieve desired results.

Choose the appropriate encoding technique based on the specific scenario and the target application's behavior.

wfuzz -e encoders #Prints the available encoders
#Examples: urlencode, md5, base64, hexlify, uri_hex, doble urlencode

एक एन्कोडर का उपयोग करने के लिए, आपको इसे "-w" या "-z" विकल्प में निर्दिष्ट करना होगा।

उदाहरण:

-z file,/path/to/file,md5 #Will use a list inside the file, and will transform each value into its md5 hash before sending it
-w /path/to/file,base64 #Will use a list, and transform to base64
-z list,each-element-here,hexlify #Inline list and to hex before sending values

चीटशीट

लॉगिन फॉर्म ब्रूटफोर्स

POST, एकल सूची, फ़िल्टर स्ट्रिंग (छिपाएं)

wfuzz -c -w users.txt --hs "Login name" -d "name=FUZZ&password=FUZZ&autologin=1&enter=Sign+in" http://zipper.htb/zabbix/index.php
#Here we have filtered by line

POST, 2 सूचियाँ, फ़िल्टर कोड (दिखाएँ)

wfuzz.py -c -z file,users.txt -z file,pass.txt --sc 200 -d "name=FUZZ&password=FUZ2Z&autologin=1&enter=Sign+in" http://zipper.htb/zabbix/index.php
#Here we have filtered by code

GET, 2 सूचियाँ, स्ट्रिंग को फ़िल्टर करें (दिखाएँ), प्रॉक्सी, कुकीज़

wfuzz -c -w users.txt -w pass.txt --ss "Welcome " -p 127.0.0.1:8080:HTTP -b "PHPSESSIONID=1234567890abcdef;customcookie=hey" "http://example.com/index.php?username=FUZZ&password=FUZ2Z&action=sign+in"

डायरेक्टरी/RESTful ब्रूटफोर्स

अर्जुन पैरामीटर वर्डलिस्ट

wfuzz -c -w /tmp/tmp/params.txt --hc 404 https://domain.com/api/FUZZ

पथ पैरामीटर्स ब्रूटफोर्स

यह एक वेब अनुरोध टेस्टिंग टूल है जिसका उपयोग पथ पैरामीटर्स को ब्रूटफोर्स करने के लिए किया जाता है। यह टूल वेब ऐप्लिकेशन के पथ में मौजूद पैरामीटर्स की संभावित मानों की सूची को चेक करता है और उन्हें ब्रूटफोर्स करके संभावित गलतीयों या सुरक्षा खोंज करता है। यह टेस्टिंग टूल वेब ऐप्लिकेशन के पथ पैरामीटर्स की अद्यतन की जांच करने के लिए उपयोगी होता है और उन्हें ब्रूटफोर्स करके वेब ऐप्लिकेशन में संभावित सुरक्षा खोंज करने में मदद करता है।

wfuzz -c -w ~/git/Arjun/db/params.txt --hw 11 'http://example.com/path%3BFUZZ=FUZZ'

हेडर प्रमाणीकरण

बेसिक, 2 सूचियाँ, फ़िल्टर स्ट्रिंग (दिखाएँ), प्रॉक्सी

wfuzz -c -w users.txt -w pass.txt -p 127.0.0.1:8080:HTTP --ss "Welcome" --basic FUZZ:FUZ2Z "http://example.com/index.php"

NTLM, 2 सूचियाँ, फ़िल्टर स्ट्रिंग (दिखाएँ), प्रॉक्सी


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

इस टूल का उपयोग करने के लिए, आपको दो सूचियाँ तैयार करनी होगी। पहली सूची में उपयोगकर्ता नामों की सूची होगी और दूसरी सूची में पासवर्डों की सूची होगी। आप इन सूचियों को फ़ाइलों में सहेज सकते हैं और उन्हें टूल के साथ उपयोग कर सकते हैं।

इसके अलावा, आप एक फ़िल्टर स्ट्रिंग भी निर्दिष्ट कर सकते हैं जो उपयोगकर्ता नाम या पासवर्ड में शामिल होने वाले विशेष शब्दों को छिपा सकती है। इससे आपको उपयोगकर्ता नाम और पासवर्ड की जांच करने के लिए समय और श्रम की बचत होगी।

अंत में, आप एक प्रॉक्सी का उपयोग करके ट्रैफ़िक को रिडायरेक्ट कर सकते हैं। इससे आप ट्रैफ़िक को अपने वेब ब्राउज़र के द्वारा अनुकरण कर सकते हैं और उपयोगकर्ता नाम और पासवर्ड की जांच कर सकते हैं।

इस वेब टूल का उपयोग करने के लिए, आपको निम्नलिखित कमांड का उपयोग करना होगा:

wfuzz -c -z file,<usernames_file> -z file,<passwords_file> --ntlm -u <target_url> -F <filter_string> -p <proxy>

यहां <usernames_file> और <passwords_file> आपकी सूचियों के फ़ाइल पथ को दर्शाते हैं, <target_url> आपके लक्षित वेब सर्वर का URL है, <filter_string> आपकी फ़िल्टर स्ट्रिंग है और <proxy> आपके प्रॉक्सी का URL है।

इस तरह से, आप एनटीएलएम प्रमाणीकरण को टेस्ट करने के लिए इस वेब टूल का सफलतापूर्वक उपयोग कर सकते हैं।

wfuzz -c -w users.txt -w pass.txt -p 127.0.0.1:8080:HTTP --ss "Welcome" --ntlm 'domain\FUZZ:FUZ2Z' "http://example.com/index.php"

कुकी/हेडर ब्रूटफोर्स (वीहोस्ट ब्रूट)

कुकी, फ़िल्टर कोड (दिखाएँ), प्रॉक्सी

wfuzz -c -w users.txt -p 127.0.0.1:8080:HTTP --ss "Welcome " -H "Cookie:id=1312321&user=FUZZ"  "http://example.com/index.php"

उपयोगकर्ता एजेंट, फ़िल्टर कोड (छिपाएं), प्रॉक्सी

wfuzz -c -w user-agents.txt -p 127.0.0.1:8080:HTTP --ss "Welcome " -H "User-Agent: FUZZ"  "http://example.com/index.php"

मेजबान

wfuzz -c -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-
top1million-20000.txt --hc 400,404,403 -H "Host: FUZZ.example.com" -u
http://example.com -t 100

फ़ाइल का उपयोग करें

This technique involves using a file to perform a brute force attack on HTTP verbs (methods). The file contains a list of commonly used HTTP verbs, such as GET, POST, PUT, DELETE, etc. The tool used for this attack is wfuzz.

To perform the attack, follow these steps:

  1. Create a file with a list of HTTP verbs. Each verb should be on a separate line. For example:
GET
POST
PUT
DELETE
  1. Save the file with a .txt extension, such as verbs.txt.

  2. Use wfuzz to perform the brute force attack. The command syntax is as follows:

wfuzz -c -z file,<path_to_file>/verbs.txt <target_url>/{FUZZ}

Replace <path_to_file> with the actual path to the file you created in step 1, and <target_url> with the URL of the target website. The {FUZZ} placeholder will be replaced by each verb from the file during the attack.

  1. Analyze the results of the attack. Wfuzz will display the responses received for each verb. Look for any unexpected or unusual responses, as they may indicate potential vulnerabilities or misconfigurations.

By brute forcing HTTP verbs, you can discover hidden functionality or misconfigured endpoints on a web application, which can be useful for further exploitation or security testing.

wfuzz -c -w methods.txt -p 127.0.0.1:8080:HTTP --sc 200 -X FUZZ "http://example.com/index.php"

इनलाइन सूची का उपयोग करना

$ wfuzz -z list,GET-HEAD-POST-TRACE-OPTIONS -X FUZZ http://testphp.vulnweb.com/

निर्देशिका और फ़ाइलों का ब्रूटफ़ोर्स

ब्रूटफ़ोर्स एक तकनीक है जिसमें हम एक वेबसाइट पर मौजूद निर्देशिकाओं और फ़ाइलों की सूची को खोजने के लिए विभिन्न प्रकार के शब्दों या संकेतों का उपयोग करते हैं। यह हमें उन निर्देशिकाओं और फ़ाइलों की पहुंच प्राप्त करने में मदद करता है जो सामान्यतः दृश्यमान नहीं होती हैं।

ब्रूटफ़ोर्स टूल्स जैसे wfuzz इस कार्य को सरल बनाते हैं। wfuzz एक ओपन सोर्स टूल है जिसका उपयोग निर्देशिका और फ़ाइलों के लिए ब्रूटफ़ोर्स अटैक करने के लिए किया जाता है। यह शब्दों या संकेतों की सूची को एक वेबसाइट पर लागू करता है और संभावित निर्देशिकाओं और फ़ाइलों की सूची को खोजता है।

इस तकनीक का उपयोग एक वेबसाइट के सुरक्षा की जांच करने, गोपनीय या अनुमति रहित फ़ाइलों की खोज करने और अनधिकृत निर्देशिकाओं की पहुंच प्राप्त करने के लिए किया जाता है।

#Filter by whitelisting codes
wfuzz -c -z file,/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --sc 200,202,204,301,302,307,403 http://example.com/uploads/FUZZ

वेब को बाइपास करने के लिए टूल

https://github.com/carlospolop/fuzzhttpbypass

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥