# Looking for Parameters with Katana

## Katana

Identifying URL Parameters

Katana is a high-speed web crawler developed by ProjectDiscovery, designed for automation pipelines and capable of both headless and non-headless crawling. It excels at discovering endpoints and parameters within web applications, making it a valuable tool for security assessments and web analysis.

### Installation

Katana requires Go 1.18 or later. To install:

```bash
CGO_ENABLED=1 go install github.com/projectdiscovery/katana/cmd/katana@latest
```

Alternatively, download the pre-compiled binary from the [release page](https://github.com/projectdiscovery/katana/releases).

### Basic Usage

To identify URL parameters using Katana, follow these steps:

1. **Run Katana with the Query URL Filter**: Use the `-f qurl` option to filter and display URLs containing query parameters.

   ```bash
   katana -u https://example.com -f qurl
   ```

   This command crawls `https://example.com` and outputs URLs that include query parameters.
2. **Process Multiple URLs**: To analyze multiple URLs, create a file (e.g., `urls.txt`) with each URL on a new line.

   ```bash
   katana -list urls.txt -f qurl
   ```

   This command processes each URL in `urls.txt` and extracts those with query parameters.
3. **Integrate with Other Tools**: Katana can be integrated into workflows with other tools. For instance, combining Katana with [Nuclei](https://github.com/projectdiscovery/nuclei) allows for fuzzing of discovered endpoints.

   ```bash
   katana -u https://example.com -f qurl -o endpoints.txt
   nuclei -list endpoints.txt -t fuzzing-templates/
   ```

   This sequence discovers endpoints with parameters and then applies fuzzing templates to test for vulnerabilities.

### Additional Options

Katana offers various options to customize its behavior:

* **Depth Control**: Use the `-d` option to set the maximum crawl depth.

  ```bash
  katana -u https://example.com -d 2 -f qurl
  ```

  This limits the crawl to two levels deep.
* **Scope Control**: The `-cs` (crawl scope) and `-cos` (crawl out scope) options allow you to define in-scope and out-of-scope URL patterns using regular expressions.

  ```bash
  katana -u https://example.com -cs "example.com" -cos "logout"
  ```

  This configuration includes URLs containing "example.com" and excludes those containing "logout".
* **Headless Crawling**: Enable headless mode with the `-hl` option to render JavaScript-heavy pages.

  ```bash
  katana -u https://example.com -hl -f qurl
  ```

  This approach is beneficial for applications that rely heavily on JavaScript.

For a comprehensive list of options and detailed usage instructions, refer to the [Katana documentation](https://github.com/projectdiscovery/katana/blob/main/README.md).

By leveraging Katana's capabilities, you can efficiently identify and analyze URL parameters within web applications, enhancing your security assessments and web analysis processes.
