Top Related Projects
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
Fast web fuzzer written in Go
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
- Install Go on your system if not already installed.
- Install httprobe:
go install github.com/tomnomnom/httprobe@latest
- 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
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.
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.
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 designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
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>
Top Related Projects
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
Fast web fuzzer written in Go
Web path scanner
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot