# Before Fuzzing

Identifying the technology stack or specific components used in a domain is crucial before starting a fuzzing process. This helps in selecting the appropriate payloads or wordlists, making the fuzzing process more efficient and effective. Here are some steps and tools you can use to identify the technologies used on a domain:

1. **Web Application Fingerprinting**:
   * **Wappalyzer**: A browser extension that uncovers the technologies used on websites.
   * **BuiltWith**: An online tool that provides detailed information about the technologies used on a website.
2. **HTTP Headers Analysis**:
   * Inspect HTTP headers using tools like `curl`, `wget`, or browser developer tools to gather information about the server, frameworks, and other technologies.
3. **Content Analysis**:
   * Analyze the HTML, JavaScript, and CSS files for comments or code that might reveal the technologies in use.
4. **Network Scanning**:
   * Use tools like `nmap` to scan for open ports and services, which can give clues about the underlying technologies.
5. **CMS Detection**:
   * Tools like `WhatCMS` or `CMSmap` can help identify if the site is using a Content Management System (CMS) like WordPress, Joomla, or Drupal.
6. **Automated Tools**:
   * **Nikto**: A web server scanner that can identify various technologies and potential vulnerabilities.
   * **WhatWeb**: A tool that identifies websites' technologies. <https://whatweb.net/>

#### Example: Using `curl` to Inspect HTTP Headers

You can use `curl` to fetch HTTP headers and inspect them for clues about the technologies used:

```bash
curl -I http://example.com
```

This command will return the HTTP headers, which might include information like the server type, X-Powered-By header, etc.

#### Example: Using `nmap` for Network Scanning

```bash
nmap -sV example.com
```

This command will scan the domain and attempt to identify the services running on open ports.

#### Example: Using `WhatWeb` for Technology Detection

```bash
whatweb http://example.com
```

This command will provide detailed information about the technologies used on the website.

#### Example: Using `Wappalyzer` in a Browser

1. Install the Wappalyzer extension from the browser's extension store.
2. Visit the target website.
3. Click on the Wappalyzer icon in the browser toolbar to see the detected technologies.

By identifying the technologies used on the domain, you can then select appropriate payloads or wordlists for fuzzing. For example, if you identify that the site is using WordPress, you might use a WordPress-specific wordlist for fuzzing login pages or plugins.Absolutely, identifying the technology stack and the structure of the domain is crucial before starting a fuzzing process. This helps in selecting the appropriate payloads or wordlists, which can significantly improve the efficiency and effectiveness of the fuzzing process.

Here are some steps you can follow to identify the technologies used on a domain:

1. **Manual Inspection**:
   * **View Source**: Check the HTML source code of the web pages.
   * **HTTP Headers**: Inspect the HTTP headers for server information.
   * **Cookies**: Look at the cookies set by the domain.
2. **Automated Tools**:
   * **Wappalyzer**: A browser extension that identifies technologies on websites.
   * **BuiltWith**: An online tool that provides detailed information about the technologies used by a website.
   * **WhatWeb**: A command-line tool to identify websites' technologies.
3. **Network Analysis**:
   * **Burp Suite**: Use the proxy tool to capture and analyze the traffic.
   * **Wireshark**: Capture network packets to analyze the communication.
4. **Content Discovery**:
   * **DirBuster**: A multi-threaded Java application designed to brute force directories and files on web/application servers.
   * **Gobuster**: A tool used to brute-force URIs (directories and files) in web sites and DNS subdomains (with wildcard support).

#### Example: Using WhatWeb to Identify Technologies

You can use WhatWeb to identify the technologies used on a domain. Here is an example of how to use it:

```bash
whatweb example.com
```

#### Example: Using Wappalyzer

If you prefer a browser extension, Wappalyzer can be installed in browsers like Chrome or Firefox. Once installed, you can simply visit the website, and Wappalyzer will display the technologies used.

#### Example: Using Burp Suite for HTTP Header Analysis

Burp Suite is a powerful tool for web application security testing. Here’s a basic example of how you can use it to inspect HTTP headers:

1. **Set up Burp Suite as a proxy** and configure your browser to use this proxy.
2. **Visit the target website** through the browser.
3. **Capture the traffic** in Burp Suite.
4. **Inspect the HTTP headers** in the "HTTP history" tab.

#### Example: Using Gobuster for Content Discovery

Gobuster is a tool used to brute-force URIs (directories and files) in web sites. Here’s an example command:

```bash
gobuster dir -u http://example.com -w /path/to/wordlist.txt
```

#### Selecting Payloads or Wordlists

Once you have identified the technologies used, you can select appropriate payloads or wordlists. For example:

* **SQL Injection**: Use SQL-specific payloads if the site uses a SQL database.
* **XSS**: Use XSS-specific payloads if the site is vulnerable to cross-site scripting.
* **Directory Traversal**: Use wordlists that include common directory names and file names.

#### Example: Using SQLMap for SQL Injection

If you identified that the site uses a SQL database, you can use SQLMap to automate SQL injection:

```bash
sqlmap -u "http://example.com/vulnerable_param" --dbs
```

By following these steps, you can effectively identify the technologies used on a domain and select the appropriate payloads or wordlists for fuzzing.

<http://ffuf.me/>
