Code Monkey home page Code Monkey logo

httpbrute's Introduction

Please note that httpbrute is still in active development and the interface is

subject to change.

HTTP Bruteforcer

HTTPBrute is a simple HTTP path brute-forcer written to look fairly un-hacker while still enumerating URLs.

Features:

  • Thin wrapper around the commonly-used Go HTTP library
  • Retries requests after timeouts and other network errors
  • Follows redirects and reports both the found and final URL
  • Can add arbitrary suffixes (e.g. .php) to URLs
  • Automatic HTTP/2 support

Please run with -h for a complete list of configurable options.

For legal use only.

Quickstart

go get github.com/magisterquis/httpbrute
go install github.com/magisterquis/httpbrute
httpbrute -h
httpbrute -target https://example.com -wordlist ./wordlist

Wordlists

Wordlists are specified with -wordlist and should contain one path suffix per line, for example:

index
login
.git
.well-known
.ssh
phpinfo
wp-admin

The wordlists which come with dirb and other HTTP brute-forcers work just fine.

A wordlist can be read from stdin with -wordlist -, e.g.

./wordlist-generator | httpbrute -target https://example.com -wordlist - 

Suffixes

Suffixes may be added to each entry in the wordlist by specifying the suffixes in a comma-separated list with -suffix. If suffixless queries are also desired, the list may be terminated in a comma to indicate an empty suffix.

Example: Make queries for .php, .txt, and no suffix:

httpbrute -target https://example.com -wordlist ./wordlist -suffix .php,.txt,

Target Specification

The target base URL is specified with -target. To the target will be appended each line of the wordlist. Targets may end with a /; if not one will be silently added.

The example wordlist in the Wordlists section with -target https://example.com would result in queries for https://example.com/index, https://example.com/login, and so on.

Parallelism

A fairly large number of HTTP requests can be made in parallel, controlled with -parallel. Setting this too high can cause problems to underpowered webservers. This should be avoided. The practial upper limit is probably somewhere around ulimit -n, though it may be less (because stdio) or more (because HTTP/2).

Output

Paths which returned a non-404 status will be logged to stdout. Everything else goes to stderr. Something like the following is probably not a bad idea:

httpbrute <flags> | tee httpbrute.out

httpbrute's People

Contributors

magisterquis avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.