Convert Figma logo to code with AI

tomnomnom logohttprobe

Take a list of domains and probe for working HTTP and HTTPS servers

2,815
495
2,815
46

Top Related Projects

7,441

httpx is a fast and multi-purpose HTTP toolkit that allows running multiple probes using the retryablehttp library.

A Tool for Domain Flyovers

Directory/File, DNS and VHost busting tool written in Go

12,220

Fast web fuzzer written in Go

11,823

Web path scanner

Quick Overview

httprobe is a fast and simple HTTP/HTTPS probe tool written in Go. It takes a list of domains and probes for working HTTP and HTTPS servers, helping security researchers and penetration testers quickly identify live web servers.

Pros

  • Fast and efficient, capable of processing large lists of domains quickly
  • Supports concurrent probing for improved performance
  • Simple to use with minimal configuration required
  • Outputs results in a clean, easy-to-parse format

Cons

  • Limited functionality compared to more comprehensive web scanning tools
  • No built-in support for custom ports or advanced HTTP methods
  • Lacks advanced features like content analysis or vulnerability scanning
  • May trigger security alerts on some networks due to rapid probing

Getting Started

  1. Install Go on your system if not already installed.
  2. Install httprobe:
go install github.com/tomnomnom/httprobe@latest
  1. Use httprobe with a list of domains:
cat domains.txt | httprobe

Or pipe domains directly:

echo "example.com" | httprobe

For more options, run:

httprobe -h

Competitor Comparisons

7,441

httpx is a fast and multi-purpose HTTP toolkit that allows running multiple probes using the retryablehttp library.

Pros of httpx

  • More feature-rich, offering additional functionality like title extraction, status code checking, and content type detection
  • Faster performance, especially for large-scale scans
  • Actively maintained with regular updates and improvements

Cons of httpx

  • More complex to use, with a steeper learning curve
  • Larger binary size and higher resource consumption
  • May produce more verbose output, requiring additional filtering

Code Comparison

httprobe:

cat domains.txt | httprobe

httpx:

cat domains.txt | httpx -silent

Both tools can be used in a similar manner for basic probing. However, httpx offers more advanced options:

cat domains.txt | httpx -silent -title -status-code -content-type

This command demonstrates httpx's additional features, providing more detailed information about the target domains.

While httprobe is simpler and more straightforward, httpx offers greater flexibility and functionality at the cost of increased complexity. The choice between the two depends on the specific requirements of your project and your familiarity with the tools.

A Tool for Domain Flyovers

Pros of Aquatone

  • More comprehensive functionality, including web screenshot capture and reporting
  • Supports multiple input formats (e.g., URLs, IP addresses, CIDR ranges)
  • Generates visual HTML reports for easy analysis

Cons of Aquatone

  • Slower execution due to additional features and processing
  • More complex setup and dependencies
  • Larger codebase, potentially harder to maintain or customize

Code Comparison

Httprobe (Go):

func main() {
    sc := bufio.NewScanner(os.Stdin)
    for sc.Scan() {
        result := probe(sc.Text())
        fmt.Println(result)
    }
}

Aquatone (Ruby):

def run
  banner
  parse_options
  setup_http_client

  if @options[:domain]
    run_domain_scan
  elsif @options[:hosts]
    run_host_scan
  end
end

Summary

Httprobe is a lightweight, fast tool focused solely on probing HTTP and HTTPS services. It's simple to use and efficient for basic reconnaissance. Aquatone, on the other hand, offers a more comprehensive suite of features, including web screenshots and HTML reporting. While Aquatone provides more detailed results, it comes at the cost of increased complexity and slower execution. The choice between the two depends on the specific needs of the user and the scope of the reconnaissance task at hand.

Directory/File, DNS and VHost busting tool written in Go

Pros of gobuster

  • More versatile with multiple modes (DNS, vhost, directory/file enumeration)
  • Supports custom wordlists and pattern-based brute-forcing
  • Offers more advanced filtering and output options

Cons of gobuster

  • More complex to use due to numerous options and modes
  • Slower for simple HTTP probing tasks compared to httprobe
  • Requires more system resources for large-scale scans

Code comparison

httprobe:

for result := range in {
    if resp, err := probeHTTP(result); err == nil {
        out <- resp
    }
}

gobuster:

for _, word := range wordlist {
    url := fmt.Sprintf("%s%s", baseURL, word)
    if resp, err := http.Get(url); err == nil {
        if resp.StatusCode == 200 {
            results <- url
        }
    }
}

Summary

httprobe is a lightweight tool focused on fast HTTP/HTTPS probing, ideal for quick checks on large lists of domains. gobuster offers more comprehensive functionality for various enumeration tasks but may be overkill for simple probing. The choice between them depends on the specific use case and required features.

12,220

Fast web fuzzer written in Go

Pros of ffuf

  • More versatile: Can be used for directory brute-forcing, parameter fuzzing, and various other web application testing tasks
  • Highly customizable: Offers numerous options for fine-tuning requests, handling responses, and filtering results
  • Faster execution: Utilizes Go's concurrency features for improved performance on large-scale scans

Cons of ffuf

  • Steeper learning curve: Requires more configuration and understanding of options to use effectively
  • Potentially overwhelming for simple probing tasks: May be overkill for basic HTTP/HTTPS endpoint discovery

Code comparison

httprobe:

for result := range in {
    if resp, err := probeHTTP(result); err == nil {
        out <- resp
    }
}

ffuf:

for scanner.Scan() {
    if err := job.AddTarget(scanner.Text()); err != nil {
        errs <- err
    }
}

Summary

While httprobe is focused on simple HTTP/HTTPS probing, ffuf is a more comprehensive web fuzzing tool. httprobe excels in straightforward endpoint discovery, while ffuf offers greater flexibility for various web application testing scenarios. The choice between the two depends on the specific requirements of the task at hand and the user's familiarity with the tools.

11,823

Web path scanner

Pros of dirsearch

  • More comprehensive directory and file enumeration
  • Supports multiple HTTP methods (GET, POST, HEAD, etc.)
  • Customizable wordlists and extensive configuration options

Cons of dirsearch

  • Slower execution compared to httprobe's focused probing
  • More complex setup and usage
  • Potentially noisier, generating more traffic to target servers

Code Comparison

dirsearch:

def check_url(url):
    try:
        tester = URLTester(url)
        return tester.test()
    except Exception as e:
        return False

httprobe:

func probeHttp(domain string) (string, error) {
    resp, err := http.Get("http://" + domain)
    if err != nil {
        return "", err
    }
    defer resp.Body.Close()
    return resp.Request.URL.String(), nil
}

dirsearch is a more feature-rich tool for directory and file enumeration, while httprobe focuses on efficiently probing for live web servers. dirsearch offers greater flexibility and depth in scanning, but at the cost of speed and simplicity. httprobe excels in quickly identifying active HTTP/HTTPS services, making it ideal for initial reconnaissance. The code snippets highlight the different approaches: dirsearch uses a more complex URLTester object, while httprobe employs a straightforward HTTP GET request.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

httprobe

Take a list of domains and probe for working http and https servers.

Install

▶ go install github.com/tomnomnom/httprobe@latest

Basic Usage

httprobe accepts line-delimited domains on stdin:

▶ cat recon/example/domains.txt
example.com
example.edu
example.net
▶ cat recon/example/domains.txt | httprobe
http://example.com
http://example.net
http://example.edu
https://example.com
https://example.edu
https://example.net

Extra Probes

By default httprobe checks for HTTP on port 80 and HTTPS on port 443. You can add additional probes with the -p flag by specifying a protocol and port pair:

▶ cat domains.txt | httprobe -p http:81 -p https:8443

Concurrency

You can set the concurrency level with the -c flag:

▶ cat domains.txt | httprobe -c 50

Timeout

You can change the timeout by using the -t flag and specifying a timeout in milliseconds:

▶ cat domains.txt | httprobe -t 20000

Skipping Default Probes

If you don't want to probe for HTTP on port 80 or HTTPS on port 443, you can use the -s flag. You'll need to specify the probes you do want using the -p flag:

▶ cat domains.txt | httprobe -s -p https:8443

Prefer HTTPS

Sometimes you don't care about checking HTTP if HTTPS is working. You can do that with the --prefer-https flag:

▶ cat domains.txt | httprobe --prefer-https

Docker

Build the docker container:

▶ docker build -t httprobe .

Run the container, passing the contents of a file into stdin of the process inside the container. -i is required to correctly map stdin into the container and to the httprobe binary.

▶ cat domains.txt | docker run -i httprobe <args>