OWASP WEB Directory Scanner
Permalink
Failed to load latest commit information.
.appveyor # Pre-relize candidate v3.2.36-rc. See README Jun 4, 2017
data Update directories.dat May 20, 2018
docs [UPDATE] v3.4.481-stable Added 80018 subdomains, optimize wordlists Oct 2, 2017
src [bugfix] Added 520 status as failed response Jul 3, 2018
tests [HotFix] Update tests Oct 3, 2017
.coveragerc # Pre-relize candidate v3.2.36-rc. See README Jun 4, 2017
.gitignore [UPDATE] Timeout. Oct 1, 2017
.landscape.yml [Update]# [skip-ci] Update docs Jun 6, 2017
.travis.yml [UPDATE] v3.4.481-stable Added 80018 subdomains, optimize wordlists Oct 2, 2017
CHANGELOG.md [UPDATE] v3.4.481-stable Added 80018 subdomains, optimize wordlists Oct 2, 2017
LICENSE [UPDATE] Bugs hotfix. Update LICENSE Sep 30, 2017
MANIFEST.in [Update] v3.4.46-rc Gained more Power! (01.07.2017) Jun 30, 2017
README.md [UPDATE] v3.4.481-stable Added 80018 subdomains, optimize wordlists Oct 2, 2017
README.rst [UPDATE] v3.4.481-stable Added 80018 subdomains, optimize wordlists Oct 2, 2017
VERSION [UPDATE] v3.4.481-stable Added 80018 subdomains, optimize wordlists Oct 2, 2017
appveyor.yml [UPDATE] v3.4.481-stable Added 80018 subdomains, optimize wordlists Oct 2, 2017
opendoor.conf [Update] v3.4.46-rc Gained more Power! (01.07.2017) Jun 30, 2017
opendoor.py [QuickFix] Add 405 status [skip-ci] Oct 5, 2017
requirements-dev.txt [ADD] Docs Feb 3, 2017
requirements.txt [FIX] bugs with externals wordlists Sep 29, 2017
setup.py [UPDATE] v3.4.481-stable Added 80018 subdomains, optimize wordlists Oct 2, 2017

README.md

OWASP WEB Directory Scanner Twitter

Code Health Documentation Status PyPI version

Python Linux OSX Windows
3.4 Build Status ? Build status
3.5 Build Status ? Build status
3.6 Build Status ? Build status

OpenDoor OWASP is console multifunctional web sites scanner. This application find all possible ways to login, index of/ directories, web shells, restricted access points, subdomains, hidden data and large backups. The scanning is performed by the built-in dictionary and external dictionaries as well. Anonymity and speed are provided by means of using proxy servers. Software is written for informational purposes and is open source product under the GPL license.

(Due to the incorrect operation of "SSL" the support for "Python 2.7" is terminated)

  • Current 3.4.481-stable (02.10.2017)
    • Directories - 36931
    • Subdomains - 181018

Testing of the software on the live commercial systems and organizations is prohibited!

Alt text

Implements

  • multithreading control
  • scan's reports
  • directories scanner
  • subdomains scanner
  • HTTP(S) (PORT) support
  • Keep-alive long pooling
  • HTTP(S)/SOCKS proxies
  • dynamic request header
  • custom wordlst's prefixes
  • custom wordlists, proxies, ignore lists
  • debug levels (1-3)
  • extensions filter
  • custom reports directory
  • custom config wizard (use random techniques)
  • analyze techniques
    • detect redirects
    • detect index of/ Apache
    • detect large files
    • heuristic detect invalid web pages
    • blank success page filter
    • certif required pages
  • randomization techniques
    • random user-agent per request
    • random proxy per request
    • wordlists shuffling
    • wordlists filters

Local installation and run

 git clone https://github.com/stanislav-web/OpenDoor.git
 cd OpenDoor/
 pip install -r requirements.txt
 chmod +x opendoor.py

 python3 opendoor.py --host http://www.example.com

Global installation (Preferably for OS distributions)

 git clone https://github.com/stanislav-web/OpenDoor.git
 cd OpenDoor/
 python3 setup.py build && python3 setup.py install

 opendoor --host http://www.example.com

Updates

 python3 opendoor.py --update
 opendoor --update

Changelog (last changes)

v3.4.481-stable (02.10.2017)

-   Fixed bugs with externals wordlists
-   Added 80018 subdomains

v3.4.47-rc Gained more Power! (05.07.2017)

- Added IPs lookup for subdomains scan
- Added missing HTTP statuses
- Bugfix: encoding errors (supported cp1251,utf8,utf16) for body analyze
- Bugfix: allow to use both --random-list & --extension params
- Directory closing slash has been removed
- Support Internationalized Domain Names IDNA
- Removed --indexof (-i) params
- Add --ignore-extensions -i param to ignore selected extension
- Added --sniff param to process responses
    - indexof   (detect Apache Index Of/ directories)
    - file      (detect large files)
    - collation (heurisic detect invalid web pages)
    - skipempty (skip empty valid pages)
- Internal dictionaries has been filtered out. Delete all duplicates
- Added +990 unique directories (36931)

Help

usage: opendoor.py [-h] [--host HOST] [-p PORT] [-m METHOD] [-t THREADS]
                   [-d DELAY] [--timeout TIMEOUT] [-r RETRIES]
                   [--accept-cookies] [--debug DEBUG] [--tor]
                   [--torlist TORLIST] [--proxy PROXY] [-s SCAN] [-w WORDLIST]
                   [--reports REPORTS] [--reports-dir REPORTS_DIR]
                   [--random-agent] [--random-list] [--prefix PREFIX]
                   [-e EXTENSIONS] [-i IGNORE_EXTENSIONS] [--sniff SNIFF]
                   [--update] [--version] [--examples] [--docs]
                   [--wizard [WIZARD]]

optional arguments:
  -h, --help            show this help message and exit

required named options:
  --host HOST           Target host (ip); --host http://example.com

Application tools:
  --update              Update from CVS
  --version             Get current version
  --examples            Examples of usage
  --docs                Read documentation
  --wizard [WIZARD]     Run wizard scanner from your config

Debug tools:
  --debug DEBUG         Debug level 1 - 3

Reports tools:
  --reports REPORTS     Scan reports (json,std,txt,html)
  --reports-dir REPORTS_DIR
                        Path to custom reports dir

Request tools:
  -p PORT, --port PORT  Custom port (Default 80)
  -m METHOD, --method METHOD
                        Request method (use HEAD as default)
  -d DELAY, --delay DELAY
                        Delay between requests threading
  --timeout TIMEOUT     Request timeout (30 sec default)
  -r RETRIES, --retries RETRIES
                        Max retries to reconnect (default 3)
  --accept-cookies      Accept and route cookies from responses
  --tor                 Using built-in proxylist
  --torlist TORLIST     Path to custom proxylist
  --proxy PROXY         Custom permanent proxy server
  --random-agent        Randomize user-agent per request

Sniff tools:
  --sniff SNIFF         Response sniff plugins
                        (indexof,collation,file,skipempty)

Stream tools:
  -t THREADS, --threads THREADS
                        Allowed threads

Wordlist tools:
  -s SCAN, --scan SCAN  Scan type scan=directories or scan=subdomains
  -w WORDLIST, --wordlist WORDLIST
                        Path to custom wordlist
  --random-list         Shuffle scan list
  --prefix PREFIX       Append path prefix to scan host
  -e EXTENSIONS, --extensions EXTENSIONS
                        Force use selected extensions for scan session -e
                        php,json e.g
  -i IGNORE_EXTENSIONS, --ignore-extensions IGNORE_EXTENSIONS
                        Ignore extensions for scan session -i aspx,jsp e.g

Maintainers

Tests

pip install  -r requirements-dev.txt
coverage run --source=src/ setup.py test

Contributors

If you like to contribute to the development of the project in that case pull requests are open for you. Also, you can suggest an ideas and create a task in my track list

Issues License: GPL v3 Say Thanks!

Documentation