├── .github
├── ISSUE_TEMPLATE
│ └── bug_report.md
└── workflows
│ ├── build-debian.yml
│ └── publish.yml
├── .gitignore
├── .idea
├── .gitignore
├── inspectionProfiles
│ ├── Project_Default.xml
│ └── profiles_settings.xml
├── misc.xml
├── modules.xml
├── okadminfinder.iml
└── vcs.xml
├── LICENSE
├── README.md
├── main.py
├── okadminfinder
├── __init__.py
├── _utils.py
├── app.py
├── assets
│ ├── admin-panel_links.yml
│ └── user-agents.yml
├── cache.py
├── credit.py
├── errors_handler.py
├── exceptions.py
├── logging.py
├── network.py
├── process.py
└── version.py
├── pyproject.toml
└── tests
├── test_app.py
├── test_cache.py
├── test_credit.py
├── test_exceptions.py
├── test_network.py
├── test_process.py
├── test_utils.py
└── test_version.py
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the bug**
11 | A clear and concise description of what the bug is.
12 |
13 | **Expected behavior**
14 | A clear and concise description of what you expected to happen.
15 |
16 | **Error Message**
17 | Full error message received
18 |
19 | **Desktop (please complete the following information):**
20 | - OS: [e.g. Ubuntu...]
21 | - Version [e.g. 18.04 ...]
22 | - Python version [e.g. 3.7.2 ...]
23 |
24 | **Additional context**
25 | Add any other context about the problem here.
26 |
--------------------------------------------------------------------------------
/.github/workflows/build-debian.yml:
--------------------------------------------------------------------------------
1 | name: Build and Upload Debian Package
2 |
3 | on:
4 | push:
5 | tags:
6 | - '*' # This will trigger the workflow for any tag that starts with any character
7 |
8 | jobs:
9 | build:
10 | runs-on: ubuntu-latest
11 |
12 | steps:
13 | - name: Checkout repository
14 | uses: actions/checkout@v4
15 |
16 | - name: Set up Python
17 | uses: actions/setup-python@v5
18 | with:
19 | python-version: '3.11'
20 |
21 | - name: Install build dependencies
22 | run: |
23 | python3 -V
24 | curl -sSL https://install.python-poetry.org | python3 -
25 | export PATH=$HOME/.local/bin:$PATH
26 | sudo apt-get update
27 | sudo apt-get install -y build-essential debhelper dh-python python3-all pybuild-plugin-pyproject
28 |
29 | - name: Prepare orig.tar.gz
30 | run: |
31 | cd ..
32 | tar czf okadminfinder_${{ github.ref_name }}.orig.tar.gz okadminfinder
33 | ls -ll
34 |
35 | - name: Build Debian package
36 | run: |
37 | export PYTHON=python3
38 | dpkg-buildpackage -rfakeroot -uc -us
39 |
40 | - name: Copy Debian package to working directory
41 | run: |
42 | mkdir builds
43 | cp ../okadminfinder_* builds/
44 |
45 | - name: List files in builds directory
46 | run: |
47 | ls -ll builds/ # Verify files are present
48 |
49 | - name: Release
50 | uses: softprops/action-gh-release@v2
51 | if: startsWith(github.ref, 'refs/tags/')
52 | with:
53 | files: |
54 | builds/okadminfinder_${{ github.ref_name }}-1_all.deb
55 |
--------------------------------------------------------------------------------
/.github/workflows/publish.yml:
--------------------------------------------------------------------------------
1 | name: Publish Poetry Package
2 |
3 | on:
4 | push:
5 | tags:
6 | - '*'
7 |
8 | jobs:
9 | build:
10 | runs-on: ubuntu-latest
11 |
12 | steps:
13 | - name: Checkout code
14 | uses: actions/checkout@v4
15 |
16 | - name: Set up Python
17 | uses: actions/setup-python@v5
18 | with:
19 | python-version: '3.11' # Adjust the Python version as needed
20 |
21 | - name: Install Poetry
22 | run: |
23 | curl -sSL https://install.python-poetry.org | python3 -
24 | export PATH=$HOME/.local/bin:$PATH
25 |
26 | - name: Install dependencies
27 | run: poetry install
28 |
29 | - name: Build package
30 | run: poetry build
31 |
32 | - name: Publish to PyPI
33 | env:
34 | POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_TOKEN }}
35 | run: poetry publish --username __token__ --password $POETRY_PYPI_TOKEN_PYPI
36 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | share/python-wheels/
24 | *.egg-info/
25 | .installed.cfg
26 | *.egg
27 | MANIFEST
28 |
29 | # PyInstaller
30 | # Usually these files are written by a python script from a template
31 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
32 | *.manifest
33 | *.spec
34 |
35 | # Installer logs
36 | pip-log.txt
37 | pip-delete-this-directory.txt
38 |
39 | # Unit test / coverage reports
40 | htmlcov/
41 | .tox/
42 | .nox/
43 | .coverage
44 | .coverage.*
45 | .cache
46 | nosetests.xml
47 | coverage.xml
48 | *.cover
49 | *.py,cover
50 | .hypothesis/
51 | .pytest_cache/
52 | cover/
53 |
54 | # Translations
55 | *.mo
56 | *.pot
57 |
58 | # Django stuff:
59 | *.log
60 | local_settings.py
61 | db.sqlite3
62 | db.sqlite3-journal
63 |
64 | # Flask stuff:
65 | instance/
66 | .webassets-cache
67 |
68 | # Scrapy stuff:
69 | .scrapy
70 |
71 | # Sphinx documentation
72 | docs/_build/
73 |
74 | # PyBuilder
75 | .pybuilder/
76 | target/
77 |
78 | # Jupyter Notebook
79 | .ipynb_checkpoints
80 |
81 | # IPython
82 | profile_default/
83 | ipython_config.py
84 |
85 | # pyenv
86 | # For a library or package, you might want to ignore these files since the code is
87 | # intended to run in multiple environments; otherwise, check them in:
88 | # .python-version
89 |
90 | # pipenv
91 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
93 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
94 | # install all needed dependencies.
95 | #Pipfile.lock
96 |
97 | # UV
98 | # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
99 | # This is especially recommended for binary packages to ensure reproducibility, and is more
100 | # commonly ignored for libraries.
101 | #uv.lock
102 |
103 | # poetry
104 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
105 | # This is especially recommended for binary packages to ensure reproducibility, and is more
106 | # commonly ignored for libraries.
107 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
108 | #poetry.lock
109 |
110 | # pdm
111 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
112 | #pdm.lock
113 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
114 | # in version control.
115 | # https://pdm.fming.dev/latest/usage/project/#working-with-version-control
116 | .pdm.toml
117 | .pdm-python
118 | .pdm-build/
119 |
120 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
121 | __pypackages__/
122 |
123 | # Celery stuff
124 | celerybeat-schedule
125 | celerybeat.pid
126 |
127 | # SageMath parsed files
128 | *.sage.py
129 |
130 | # Environments
131 | .env
132 | .venv
133 | env/
134 | venv/
135 | ENV/
136 | env.bak/
137 | venv.bak/
138 |
139 | # Spyder project settings
140 | .spyderproject
141 | .spyproject
142 |
143 | # Rope project settings
144 | .ropeproject
145 |
146 | # mkdocs documentation
147 | /site
148 |
149 | # mypy
150 | .mypy_cache/
151 | .dmypy.json
152 | dmypy.json
153 |
154 | # Pyre type checker
155 | .pyre/
156 |
157 | # pytype static type analyzer
158 | .pytype/
159 |
160 | # Cython debug symbols
161 | cython_debug/
162 |
163 | # PyCharm
164 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
165 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
166 | # and can be added to the global gitignore or merged into this file. For a more nuclear
167 | # option (not recommended) you can uncomment the following to ignore the entire idea folder.
168 | #.idea/
169 |
170 | # PyPI configuration file
171 | .pypirc
172 |
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 | # Editor-based HTTP Client requests
5 | /httpRequests/
6 | # Datasource local storage ignored files
7 | /dataSources/
8 | /dataSources.local.xml
9 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/Project_Default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/okadminfinder.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017-2025 mIcHyAmRaNe
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 
2 | 
3 | 
4 | 
5 | 
6 |
7 | ## Overview
8 |
9 | OKadminFinder is a powerful, open-source tool designed to help administrators and penetration testers discover admin panels, directories, subdomains of a website and even some webshells.\
10 | Built with Python 3.x, OKadminFinder offers a robust set of features to ensure effective and secure scanning.
11 |
12 | ## Features
13 |
14 | - [x] Multi-Platform Support: Works on Windows, Linux, and macOS.
15 | - [x] Easy Installation and Updates: Simple commands to install, update, and remove the tool.
16 | - [x] Extensive Admin Panel Database: Over 1600 potential admin panels.
17 | - [x] Command-Line Interface: Works with parameters for flexible usage.
18 | - [x] Target URL: Specify the target URL for scanning.
19 | - [x] URLs File: Specify a file containing a list of URLs to scan.
20 | - [x] Random User Agents: Helps avoid detection by using random user agents.
21 | - [x] Proxy Support: Supports HTTP/HTTPS proxies.
22 | - [x] Socks4/5 & Tor: Enhanced anonymity with Socks4/5 and Tor support.
23 | - [x] Custom Wordlists: Use your own wordlists for more targeted scanning.
24 | - [x] DNS Mode: Use DNS mode for wordlist scanning.
25 | - [x] Subdomain Discovery: Equivalent to fuzz.URL for finding subdomains.
26 | - [x] Fuzzing Mode: Use fuzzing mode for more dynamic URL testing.
27 | - [x] File Extensions: Search for specific file extensions.
28 | - [x] Status Codes: Specify valid HTTP status codes or ranges.
29 | - [x] Custom Cookies: Set custom cookies for requests.
30 | - [x] Support for Authentication: Use custom username and password for secure access during scans.
31 | - [x] Output File: Save results to an output file.
32 | - [x] Cache Management: Clear and disable the cache for fresh scans.
33 | - [x] Timeout Settings: Customize timeout settings for requests.
34 | - [x] Connection Pools: Adjust the number of connection pools for better performance.
35 | - [x] Threading: Control the number of threads for concurrent processing.
36 | - [x] Retry Mechanism: Set the number of retries for failed requests.
37 | - [x] Delay Customization: Fine-tune delay between requests to control response times.
38 | - [x] Debug Mode: Detailed logging for debugging purposes.
39 |
40 | * ## Requirements
41 |
42 | 
43 | 
44 | 
45 |
46 | * #### Linux
47 |
48 | ```bash
49 | ❯ sudo apt install tor
50 | ❯ sudo service tor start
51 | ```
52 |
53 | * #### Windows
54 |
55 | Download [tor windows expert bundle](https://www.torproject.org/download/tor/)
56 |
57 | * ## Installation
58 |
59 | * #### PyPi
60 |
61 | ```bash
62 | # Install
63 | ❯ pip install okadminfinder
64 | # Update
65 | ❯ pip install --upgrade okadminfinder
66 | # Remove
67 | ❯ pip uninstall okadminfinder
68 | ```
69 |
70 | * #### Git Clone
71 |
72 | ```bash
73 | # Download and Usage
74 | ❯ git clone https://github.com/mIcHyAmRaNe/okadminfinder.git
75 | ❯ cd okadminfinder
76 | ❯ pip3 install -r requirements.txt
77 | ❯ chmod +x okadminfinder.py
78 | ❯ ./okadminfinder.py -h
79 | ```
80 |
81 | ## Preview
82 |
83 |
88 |
89 |
90 | ## Usage
91 |
92 | * ### Basic Usage
93 |
94 | ```bash
95 | # Scanning a Single URL
96 | ❯ okadminfinder --url https://example.com
97 |
98 | # Scanning Multiple URLs from a File
99 | ❯ okadminfinder --urls-file urls.txt
100 |
101 | # Using a Custom Wordlist
102 | ❯ okadminfinder --url https://example.com --wordlist custom_wordlist.txt
103 |
104 | # Using Random User Agents
105 | ❯ okadminfinder --url https://example.com --random-agent
106 |
107 | # Using a Proxy
108 | ❯ okadminfinder --url https://example.com --proxy 127.0.0.1:8080
109 |
110 | # Using Tor for Anonymity
111 | ❯ okadminfinder --url https://example.com --tor
112 | ```
113 | > [!IMPORTANT]
114 | > Parameter Conflicts:\
115 | > Proxy and Tor: You cannot use both a proxy and Tor at the same time.\
116 | > DNS Mode and Fuzzing Mode: You cannot use both DNS mode and fuzzing mode at the same time.\
117 | > Files Option and Non-Fuzzing Mode: The --files option can only be used with the fuzzing mode.\
118 | > URL and URLs File: You cannot provide both a single URL and a file containing multiple URLs at the same time.
119 |
120 | * ### Advanced Usage
121 |
122 | For more advanced usage examples and detailed documentation, an Advanced Wiki is under construction.
123 |
124 | ## Developer Section
125 |
126 | * #### PyPi
127 |
128 | ```bash
129 | # Install Poetry
130 | curl -sSL https://install.python-poetry.org | python3 -
131 |
132 | # Clone the repo
133 | git clone https://github.com/mIcHyAmRaNe/okadminfinder.git
134 |
135 | # Build the project
136 | poetry build
137 |
138 | # Publish the package
139 | poetry publish
140 | ```
141 |
142 | * #### Debian (planned)
143 |
144 | ```bash
145 | # Install Poetry
146 | curl -sSL https://install.python-poetry.org | python3 -
147 |
148 | # Install build requirements
149 | sudo apt install debhelper dh-python python3-setuptools python3-all pybuild-plugin-pyproject
150 |
151 | # Clone the repo
152 | git clone https://github.com/mIcHyAmRaNe/okadminfinder.git
153 |
154 | # Create the source tarball
155 | tar czf okadminfinder_{version}.orig.tar.gz okadminfinder
156 |
157 | # Get inside the project folder
158 | cd okadminfinder
159 |
160 | # Build the deb package
161 | dpkg-buildpackage -rfakeroot -uc -us
162 |
163 | # Notes:
164 | # Steps from Python to Debian.
165 | # Install Stdeb
166 | pip install stdeb
167 | # Debianize Python package creating debian folder
168 | python3 setup.py --command-packages=stdeb.command debianize
169 | # we edit rules, control files, we create changelog, man pages...
170 | # Build deb package
171 | dpkg-buildpackage -rfakeroot -uc -us
172 | # before building a new version, make sure to clean it first
173 | ```
174 | ## YouTube Videos
175 |
176 | - [OKadminFinder 2.0: Take Control of Your Admin Panel Discovery!](https://youtu.be/vU5R9OoMqFc?si=oXCJv77PbZwL4IEI)
177 |
178 | ## Disclaimer
179 |
180 | > [!IMPORTANT]
181 | > OKadminFinder is intended for educational purposes and authorized penetration testing only.\
182 | > Usage of OKadminFinder for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state, and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program.
183 |
184 | ## License
185 |
186 | This project is licensed under the MIT License. See the LICENSE file for details.
187 |
188 | ## Donate
189 |
190 | > [!NOTE]
191 | > If you find OKadminFinder useful and would like to support its development, you can donate to the following address:\
192 | > **Bitcoin Address:** `1LZiNVRZupWNbB9bEPxsiwoC5AGPAuFCjp` \
193 | > Your support is greatly appreciated ♥️
194 |
195 |
--------------------------------------------------------------------------------
/main.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # -*- coding: utf-8 -*-
3 |
4 | from okadminfinder.app import run
5 |
6 |
7 | def main() -> object:
8 | """
9 | :rtype: object
10 | """
11 | try:
12 | return run()
13 | except KeyboardInterrupt:
14 | print("\n:boom: [bold red]Process interrupted by user[/bold red] :boom:")
15 | return
16 |
17 |
18 | if __name__ == "__main__":
19 | main()
20 |
--------------------------------------------------------------------------------
/okadminfinder/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mIcHyAmRaNe/okadminfinder/a1656819cc44805be2d3479ea2cf6d2ee762acc2/okadminfinder/__init__.py
--------------------------------------------------------------------------------
/okadminfinder/_utils.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # -*- coding: utf-8 -*-
3 |
4 | from importlib.resources import open_text
5 | from random import choice
6 | from urllib.parse import urlsplit
7 |
8 | from yaml import safe_load
9 |
10 | from okadminfinder.exceptions import (
11 | FuzzURLFormatError,
12 | URLFormatError,
13 | UserAgentFileError,
14 | )
15 |
16 |
17 | class UserAgent:
18 | """
19 | Manage user-agents
20 | """
21 |
22 | def __init__(
23 | self,
24 | ua_file: str = r"user-agents.yml",
25 | ):
26 | """
27 | Initialize the UserAgent class with a file containing user-agents.
28 | :param ua_file: Path to the user-agents YAML file.
29 | """
30 | try:
31 | with open_text("okadminfinder.assets", ua_file, encoding="utf-8") as file:
32 | self.user_agents = safe_load(file)
33 | except FileNotFoundError as e:
34 | raise UserAgentFileError(ua_file) from e
35 |
36 | def get_user_agent(self) -> str:
37 | """
38 | Return a random user-agent from the loaded user-agents.
39 | :return: A random user-agent string.
40 | """
41 | rua = choice(self.user_agents)
42 | return rua.rstrip()
43 |
44 |
45 | class URLCreator:
46 | """
47 | Manage and verify URLs of admin panel
48 | """
49 |
50 | def __init__(
51 | self,
52 | wordlist: str,
53 | dns: bool,
54 | fuzz: bool,
55 | files: str,
56 | apl_file: str = r"admin-panel_links.yml",
57 | ):
58 | """
59 | Initialize the URLCreator class with a file containing admin panel links.
60 | :param apl_file: Path to the admin panel links YAML file.
61 | """
62 | self.paths = None
63 | self.dns = dns
64 | self.fuzz = fuzz
65 | self.files = files.split(",") if files else []
66 | if wordlist:
67 | self.load_wordlist(wordlist)
68 | else:
69 | self.load_default_links(apl_file)
70 |
71 | def load_wordlist(self, wordlist: str):
72 | try:
73 | with open(wordlist, "r", encoding="utf-8") as file:
74 | self.paths = [
75 | line.strip() for line in file if not line.strip().startswith("#")
76 | ]
77 | except FileNotFoundError as e:
78 | raise URLFormatError(wordlist) from e
79 |
80 | def load_default_links(self, apl_file: str):
81 | try:
82 | with open_text("okadminfinder.assets", apl_file, encoding="utf-8") as file:
83 | self.paths = safe_load(file)
84 | except FileNotFoundError as e:
85 | raise URLFormatError(apl_file) from e
86 |
87 | @staticmethod
88 | def create_url(base_url: str, path: str, dns: bool = False) -> str:
89 | """
90 | Generate a URL using base URL + a path.
91 | :param base_url: The base URL.
92 | :param path: The path to append to the base URL.
93 | :param dns: Whether to use DNS mode.
94 | :return: The constructed URL.
95 | """
96 | # Validate and parse the base URL
97 | try:
98 | if not base_url.startswith(("http://", "https://")):
99 | raise URLFormatError(base_url)
100 |
101 | scheme, netloc, _, _, _ = urlsplit(base_url)
102 | except Exception:
103 | raise URLFormatError(base_url)
104 |
105 | # Handle case where the host starts with 'www.'
106 | host = netloc.split(":")[0] # Extract the hostname
107 | if host.startswith("www."):
108 | host = host.replace("www.", "")
109 |
110 | # Extract the port if present
111 | port = netloc.split(":")[1] if ":" in netloc else ""
112 |
113 | # Reconstruct the full netloc (host + optional port)
114 | full_netloc = f"{host}:{port}" if port else host
115 |
116 | if dns:
117 | return f"{scheme}://{path}.{full_netloc}"
118 | else:
119 | return f"{scheme}://{path.format(full_netloc)}"
120 |
121 | def create_urls(self, base_url: str) -> list[str]:
122 | """
123 | Generate a list of URLs from paths.
124 | :param base_url: The base URL.
125 | :return: A list of constructed URLs.
126 | """
127 | if self.fuzz:
128 | # Remove {} placeholders from the default dictionary entries
129 | cleaned_paths = [
130 | path.replace("{}.", "").replace(".{}", "").replace("{}/", "")
131 | for path in self.paths
132 | ]
133 | if base_url.endswith("FUZZ"):
134 | base_url = base_url.replace("FUZZ", "{}")
135 | urls = [base_url.format(path) for path in cleaned_paths]
136 | if self.files:
137 | extended_urls = []
138 | for url in urls:
139 | extended_urls.append(url) # Add the directory URL
140 | for file_ext in self.files:
141 | extended_urls.append(f"{url}.{file_ext}")
142 | return extended_urls
143 | return urls
144 | else:
145 | raise FuzzURLFormatError()
146 | elif self.dns:
147 | return [self.create_url(base_url, path, self.dns) for path in self.paths]
148 | else:
149 | return [self.create_url(base_url, path) for path in self.paths]
150 |
--------------------------------------------------------------------------------
/okadminfinder/app.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # -*- coding: utf-8 -*-
3 |
4 | from rich import print
5 | from typer import Abort, Option, Typer
6 |
7 | from okadminfinder.credit import Credit
8 | from okadminfinder.errors_handler import custom_error_handler, detect_options_from_typer
9 | from okadminfinder.logging import LoggingConfig
10 | from okadminfinder.process import Process
11 |
12 | app = Typer(help="Admin panel finder application.", no_args_is_help=True)
13 |
14 | credit = Credit()
15 |
16 |
17 | @app.command()
18 | def main(
19 | url: str = Option(
20 | None,
21 | "--url",
22 | "-u",
23 | help="Target URL (e.g. http://example.com or 'https://example.com')",
24 | ),
25 | urls_file: str = Option(
26 | None,
27 | "--urls-file",
28 | "-U",
29 | help="File containing a list of URLs to scan",
30 | ),
31 | random_agent: bool = Option(
32 | False, "--random-agent", "-r", help="Use random user agent"
33 | ),
34 | proxy: str = Option(
35 | None, "--proxy", "-p", help="Proxy address (e.g. '127.0.0.1:8080')"
36 | ),
37 | tor: bool = Option(False, "--tor", "-t", help="Use Tor anonymity network"),
38 | wordlist: str = Option(
39 | None, "--wordlist", "-w", help="Path to the custom wordlist file"
40 | ),
41 | dns: bool = Option(False, "--dns", "-d", help="Use DNS mode for wordlist"),
42 | fuzz: bool = Option(
43 | False,
44 | "--fuzz",
45 | "-F",
46 | help="Use fuzzing mode (e.g. '-u https://example.com/road/to/FUZZ')",
47 | ),
48 | files: str = Option(
49 | None, "--files", "-f", help="File extensions to search for (e.g. 'php,txt,js')"
50 | ),
51 | status_codes: str = Option(
52 | "200,301,401,500",
53 | "--status-codes",
54 | "-s",
55 | help="Comma-separated list of valid HTTP status codes or ranges (e.g. '200,301,401' or '200-399,501')",
56 | ),
57 | cookie: str = Option(
58 | None,
59 | "--cookie",
60 | "-C",
61 | help="Set custom cookies (e.g. 'session=f3efe9db; id=30')",
62 | ),
63 | username: str = Option(
64 | None, "--username", "-I", help="Identifier for authentication"
65 | ),
66 | password: str = Option(
67 | None, "--password", "-P", help="Password for authentication"
68 | ),
69 | output: str = Option(
70 | None, "--output", "-o", help="Output file path (e.g. 'output.txt')"
71 | ),
72 | clear_cache: bool = Option(
73 | False, "--clear-cache", "-c", help="Clear and disable the cache"
74 | ),
75 | timeout: int = Option(10, "--timeout", "-T", help="Timeout in seconds"),
76 | num_pools: int = Option(
77 | 50, "--num-pools", "-k", help="Number of connection pools to use"
78 | ),
79 | threads: int = Option(16, "--threads", "-j", help="Number of threads and maxsize"),
80 | retry: int = Option(0, "--retry", "-R", help="Number of retries"),
81 | delay: float = Option(
82 | 0.0, "--delay", "-l", help="Delay (latency) in seconds between requests"
83 | ),
84 | debug: bool = Option(False, "--debug", "-D", help="Enable debug logging"),
85 | ):
86 | # Validate URL and file options
87 | if not url and not urls_file:
88 | custom_error_handler(
89 | app, "Missing option '--url' / '-u' or '--urls-file' / '-U'."
90 | )
91 | if url and urls_file:
92 | custom_error_handler(
93 | app, "You cannot provide both --url (-u) and --urls-file (-U)."
94 | )
95 |
96 | try:
97 | process = Process(
98 | random_agent=random_agent,
99 | proxy_url=proxy,
100 | use_tor=tor,
101 | wordlist=wordlist,
102 | dns=dns,
103 | fuzz=fuzz or (url and "FUZZ" in url),
104 | files=files,
105 | status_codes=status_codes,
106 | cookie=cookie,
107 | username=username,
108 | password=password,
109 | output_path=output,
110 | clear_cache=clear_cache,
111 | timeout=timeout,
112 | num_pools=num_pools,
113 | num_threads=threads,
114 | num_retry=retry,
115 | delay=delay,
116 | )
117 |
118 | # configure logging based on debug flag
119 | LoggingConfig.configure_logging(debug)
120 |
121 | # run process_urls
122 | process.process_urls(url, urls_file)
123 |
124 | except Exception as e:
125 | if debug:
126 | raise e
127 | else:
128 | print(f"\n :x: [bold red]Error: {e}[/bold red]")
129 | Abort()
130 |
131 |
132 | def run():
133 | try:
134 | with credit.set_credit():
135 | detect_options_from_typer(app)
136 | app()
137 | except KeyboardInterrupt:
138 | print("\n:boom: [bold red]Process interrupted by user[/bold red] :boom:")
139 | Abort()
140 |
--------------------------------------------------------------------------------
/okadminfinder/assets/admin-panel_links.yml:
--------------------------------------------------------------------------------
1 | - "{}/robots.txt"
2 | - "{}/.htaccess"
3 | - "{}/config.php"
4 | - "{}/.env"
5 | - "{}/.git/"
6 | - "{}/backup/"
7 | - "{}/db_backup/"
8 | - "{}/adminbackups/"
9 | - "admin.{}"
10 | - "login.{}"
11 | - "login1.{}"
12 | - "panel.{}"
13 | - "admin1.{}"
14 | - "admin2.{}"
15 | - "admin3.{}"
16 | - "admin4.{}"
17 | - "moderator.{}"
18 | - "webadmin.{}"
19 | - "user.{}"
20 | - "{}/admin"
21 | - "{}/admin.asp"
22 | - "{}/admin/admin.asp"
23 | - "{}/admin.aspx"
24 | - "{}/admin/admin.aspx"
25 | - "{}/admin.php"
26 | - "{}/administrator"
27 | - "{}/login.php"
28 | - "{}/user"
29 | - "{}/usuarios"
30 | - "{}/usuario"
31 | - "{}/cpanel"
32 | - "{}/phpmyadmin"
33 | - "{}/dashboard"
34 | - "{}/cms"
35 | - "{}/users"
36 | - "{}/wp-login.php"
37 | - "{}/admin/login"
38 | - "{}/auth/login"
39 | - "{}/moderator"
40 | - "{}/webadmin"
41 | - "{}/webmaster"
42 | - "{}/adminarea"
43 | - "{}/bb-admin"
44 | - "{}/wp-admin"
45 | - "{}/wp-login"
46 | - "{}/wp-admin.php"
47 | - "{}/userlogin"
48 | - "{}/logins"
49 | - "{}/login.html"
50 | - "{}/adminLogin"
51 | - "{}/admin_area"
52 | - "{}/panel-administracion"
53 | - "{}/instadmin"
54 | - "{}/memberadmin"
55 | - "{}/administratorlogin"
56 | - "{}/panel"
57 | - "{}/forum/admin"
58 | - "{}/adm"
59 | - "{}/cp"
60 | - "{}/vue-element-admin"
61 | - "{}/vue-admin-template"
62 | - "{}/admin-dashboard"
63 | - "{}/admincontrol"
64 | - "{}/cms-admin"
65 | - "{}/manage"
66 | - "{}/site-admin"
67 | - "{}/portal-admin"
68 | - "{}/manage-panel"
69 | - "{}/admin-tools"
70 | - "{}/admin-config"
71 | - "{}/config"
72 | - "{}/control-panel"
73 | - "{}/site-settings"
74 | - "{}/settings"
75 | - "{}/admin-center"
76 | - "{}/admin-access-panel"
77 | - "{}/super-admin"
78 | - "{}/auth-admin"
79 | - "{}/login-admin"
80 | - "{}/admin-tools-panel"
81 | - "{}/webmaster-login"
82 | - "{}/backend-admin"
83 | - "{}/site-admin-control"
84 | - "{}/user-control"
85 | - "{}/management-area"
86 | - "{}/cms-control"
87 | - "{}/mod-login"
88 | - "{}/access-control"
89 | - "{}/security-panel"
90 | - "{}/system-settings"
91 | - "{}/root-access"
92 | - "{}/developer"
93 | - "{}/dev-admin"
94 | - "{}/adminhub"
95 | - "{}/root-control"
96 | - "{}/dashboard-admin"
97 | - "{}/support-admin"
98 | - "{}/helpdesk"
99 | - "{}/adminhelp"
100 | - "{}/adminentry"
101 | - "{}/site-control-panel"
102 | - "{}/control-admin"
103 | - "{}/admin-panel"
104 | - "{}/admin-area"
105 | - "{}/admin-control"
106 | - "{}/admin-settings"
107 | - "{}/configuration"
108 | - "{}/user-admin"
109 | - "{}/user-panel"
110 | - "{}/root"
111 | - "{}/root-login"
112 | - "{}/developer-panel"
113 | - "{}/dev-tools"
114 | - "{}/superadmin"
115 | - "{}/superadmin-panel"
116 | - "{}/support-login"
117 | - "{}/operations"
118 | - "{}/secure"
119 | - "{}/security"
120 | - "{}/system-control"
121 | - "{}/admin-portal"
122 | - "{}/site-control"
123 | - "{}/backend-tools"
124 | - "{}/admin-access"
125 | - "{}/admin-options"
126 | - "{}/admin-entry"
127 | - "{}/cpanel-login"
128 | - "{}/cpanel-access"
129 | - "{}/auth-tools"
130 | - "{}/authentication"
131 | - "{}/admin-privileges"
132 | - "{}/operator"
133 | - "{}/operator-login"
134 | - "{}/data-center"
135 | - "{}/data-center-login"
136 | - "{}/cloud-admin"
137 | - "{}/cloud-control"
138 | - "{}/cloud-settings"
139 | - "{}/cloud-panel"
140 | - "{}/root-panel"
141 | - "{}/admin-login-panel"
142 | - "{}/admin-configure"
143 | - "{}/entry-admin"
144 | - "{}/access-admin"
145 | - "{}/advanced-admin"
146 | - "{}/admin-advanced"
147 | - "{}/enterprise-admin"
148 | - "{}/global-admin"
149 | - "{}/region-admin"
150 | - "{}/local-admin"
151 | - "{}/control-center"
152 | - "{}/server-login"
153 | - "{}/secure-control"
154 | - "{}/secure-settings"
155 | - "{}/admin-secure"
156 | - "{}/secure-admin"
157 | - "{}/management-tools"
158 | - "{}/entry-point"
159 | - "{}/admin-point"
160 | - "{}/support-point"
161 | - "{}/backend-login"
162 | - "{}/site-backend"
163 | - "{}/user-access"
164 | - "{}/user-auth"
165 | - "{}/auth-login"
166 | - "{}/secure-login"
167 | - "{}/super-access"
168 | - "{}/super-panel"
169 | - "{}/enterprise-control"
170 | - "{}/operations-control"
171 | - "{}/superuser-login"
172 | - "{}/master-panel"
173 | - "{}/advanced-login"
174 | - "{}/custom-login"
175 | - "{}/cms-panel"
176 | - "{}/cms-dashboard"
177 | - "{}/system-portal"
178 | - "{}/it-admin"
179 | - "{}/it-management"
180 | - "{}/configurator"
181 | - "{}/dashboard-login"
182 | - "{}/enterprise-panel"
183 | - "{}/system-operator"
184 | - "{}/operator-admin"
185 | - "{}/data-control"
186 | - "{}/data-admin"
187 | - "{}/adminsys"
188 | - "{}/supervisor"
189 | - "{}/supervisor-tools"
190 | - "{}/custom-admin"
191 | - "{}/config-login"
192 | - "auth.{}"
193 | - "dashboard-admin.{}"
194 | - "configurator.{}"
195 | - "superuser.{}"
196 | - "custompanel.{}"
197 | - "enterprise.{}"
198 | - "administrator.{}"
199 | - "{}/tools"
200 | - "{}/tools-panel"
201 | - "{}/admin-console"
202 | - "{}/admincp"
203 | - "{}/admintools"
204 | - "{}/root-tools"
205 | - "{}/panel-root"
206 | - "{}/admin-site"
207 | - "{}/root-tools-panel"
208 | - "{}/admin-helper"
209 | - "{}/superuser"
210 | - "{}/master-login"
211 | - "{}/backend"
212 | - "{}/staff-login"
213 | - "{}/staff-admin"
214 | - "{}/employee-admin"
215 | - "{}/team-admin"
216 | - "{}/loginpanel"
217 | - "{}/root-loginpanel"
218 | - "{}/server-admin"
219 | - "{}/server-access"
220 | - "{}/host-admin"
221 | - "{}/host-login"
222 | - "{}/login-staff"
223 | - "{}/webtools"
224 | - "{}/tools-login"
225 | - "{}/superadminpanel"
226 | - "{}/loginpage"
227 | - "{}/webmaster-tools"
228 | - "{}/moderator-tools"
229 | - "{}/security-admin"
230 | - "{}/sysadmin"
231 | - "{}/system-admin"
232 | - "{}/system-login"
233 | - "{}/config-panel"
234 | - "{}/user-tools"
235 | - "{}/user-management"
236 | - "{}/access-management"
237 | - "{}/privileged-login"
238 | - "{}/privileged-access"
239 | - "{}/admin-only"
240 | - "{}/adminportal"
241 | - "{}/rootportal"
242 | - "{}/accessportal"
243 | - "{}/admin-control-center"
244 | - "{}/main-admin"
245 | - "{}/main-login"
246 | - "{}/main-control"
247 | - "{}/admins/"
248 | - "{}/adminlogin/"
249 | - "{}/administrator/"
250 | - "{}/login/"
251 | - "{}/cpanel/"
252 | - "{}/manage/"
253 | - "{}/loginpanel/"
254 | - "{}/moderator/"
255 | - "{}/root/"
256 | - "{}/super/"
257 | - "{}/access/"
258 | - "{}/entry/"
259 | - "cms.{}"
260 | - "manage.{}"
261 | - "dashboard.{}"
262 | - "portal.{}"
263 | - "settings.{}"
264 | - "config.{}"
265 | - "control.{}"
266 | - "backend.{}"
267 | - "support.{}"
268 | - "helpdesk.{}"
269 | - "developer.{}"
270 | - "dev.{}"
271 | - "team.{}"
272 | - "staff.{}"
273 | - "security.{}"
274 | - "root.{}"
275 | - "master.{}"
276 | - "adminpanel.{}"
277 | - "sitecontrol.{}"
278 | - "accesscontrol.{}"
279 | - "sysadmin.{}"
280 | - "webmaster.{}"
281 | - "tools.{}"
282 | - "operations.{}"
283 | - "privileged.{}"
284 | - "management.{}"
285 | - "host.{}"
286 | - "server.{}"
287 | - "adminarea.{}"
288 | - "controlpanel.{}"
289 | - "{}/admin/cp.php"
290 | - "{}/cp.php"
291 | - "{}/admin/account.php"
292 | - "{}/admin/index.php"
293 | - "{}/admin/login.php"
294 | - "{}/admin/admin.php"
295 | - "{}/admin_area/admin.php"
296 | - "{}/admin_area/login.php"
297 | - "{}/siteadmin/login.php"
298 | - "{}/siteadmin/index.php"
299 | - "{}/siteadmin/login.html"
300 | - "{}/admin/account.html"
301 | - "{}/admin/index.html"
302 | - "{}/admin/login.html"
303 | - "{}/admin/admin.html"
304 | - "{}/admin_area/index.php"
305 | - "{}/dashboard.html"
306 | - "{}/dashboard.php"
307 | - "{}/bb-admin/index.php"
308 | - "{}/bb-admin/login.php"
309 | - "{}/bb-admin/admin.php"
310 | - "{}/admin/home.php"
311 | - "{}/admin_area/login.html"
312 | - "{}/admin_area/index.html"
313 | - "{}/admin/controlpanel.php"
314 | - "{}/admincp/index.asp"
315 | - "{}/admincp/login.asp"
316 | - "{}/admincp/index.html"
317 | - "{}/adminpanel.html"
318 | - "{}/webadmin.html"
319 | - "{}/webadmin/index.html"
320 | - "{}/webadmin/admin.html"
321 | - "{}/webadmin/login.html"
322 | - "{}/admin/admin_login.html"
323 | - "{}/admin_login.html"
324 | - "{}/panel-administracion/login.html"
325 | - "{}/administrator/index.php"
326 | - "{}/administrator/login.php"
327 | - "{}/nsw/admin/login.php"
328 | - "{}/webadmin/login.php"
329 | - "{}/admin/admin_login.php"
330 | - "{}/admin_login.php"
331 | - "{}/administrator/account.php"
332 | - "{}/administrator.php"
333 | - "{}/admin_area/admin.html"
334 | - "{}/pages/admin"
335 | - "{}/pages/admin/admin-login.php"
336 | - "{}/admin/admin-login.php"
337 | - "{}/admin-login.php"
338 | - "{}/members"
339 | - "{}/bb-admin/index.html"
340 | - "{}/bb-admin/login.html"
341 | - "{}/acceso.php"
342 | - "{}/bb-admin/admin.html"
343 | - "{}/admin/home.html"
344 | - "{}/modelsearch/login.php"
345 | - "{}/moderator.php"
346 | - "{}/moderator/login.php"
347 | - "{}/moderator/admin.php"
348 | - "{}/account.php"
349 | - "{}/pages/admin/admin-login.html"
350 | - "{}/admin/admin-login.html"
351 | - "{}/admin-login.html"
352 | - "{}/controlpanel.php"
353 | - "{}/admincontrol.php"
354 | - "{}/admin/adminLogin.html"
355 | - "{}/adminLogin.html"
356 | - "{}/home.html"
357 | - "{}/rcjakar/admin/login.php"
358 | - "{}/adminarea/index.html"
359 | - "{}/adminarea/admin.html"
360 | - "{}/webadmin.php"
361 | - "{}/webadmin/index.php"
362 | - "{}/webadmin/admin.php"
363 | - "{}/admin/controlpanel.html"
364 | - "{}/admin.html"
365 | - "{}/admin/cp.html"
366 | - "{}/cp.html"
367 | - "{}/adminpanel.php"
368 | - "{}/moderator.html"
369 | - "{}/administrator/index.html"
370 | - "{}/administrator/login.html"
371 | - "{}/user.html"
372 | - "{}/administrator/account.html"
373 | - "{}/administrator.html"
374 | - "{}/modelsearch/login.html"
375 | - "{}/moderator/login.html"
376 | - "{}/adminarea/login.html"
377 | - "{}/panel-administracion/index.html"
378 | - "{}/panel-administracion/admin.html"
379 | - "{}/modelsearch/index.html"
380 | - "{}/modelsearch/admin.html"
381 | - "{}/admincontrol/login.html"
382 | - "{}/adm/index.html"
383 | - "{}/adm.html"
384 | - "{}/moderator/admin.html"
385 | - "{}/user.php"
386 | - "{}/account.html"
387 | - "{}/controlpanel.html"
388 | - "{}/admincontrol.html"
389 | - "{}/panel-administracion/login.php"
390 | - "{}/adminLogin.php"
391 | - "{}/admin/adminLogin.php"
392 | - "{}/home.php"
393 | - "{}/adminarea/index.php"
394 | - "{}/adminarea/admin.php"
395 | - "{}/adminarea/login.php"
396 | - "{}/panel-administracion/index.php"
397 | - "{}/panel-administracion/admin.php"
398 | - "{}/modelsearch/index.php"
399 | - "{}/modelsearch/admin.php"
400 | - "{}/admincontrol/login.php"
401 | - "{}/adm/admloginuser.php"
402 | - "{}/admloginuser.php"
403 | - "{}/admin2.php"
404 | - "{}/admin2/login.php"
405 | - "{}/admin2/index.php"
406 | - "{}/usuarios/login.php"
407 | - "{}/adm/index.php"
408 | - "{}/adm.php"
409 | - "{}/affiliate.php"
410 | - "{}/adm_auth.php"
411 | - "{}/memberadmin.php"
412 | - "{}/administratorlogin.php"
413 | - "{}/administration"
414 | - "{}/mag/admin"
415 | - "{}/joomla/administrator"
416 | - "{}/manager"
417 | - "{}/adminpanel"
418 | - "{}/controlpanel"
419 | - "{}/logon"
420 | - "{}/auth"
421 | - "{}/apanel"
422 | - "{}/a"
423 | - "{}/app"
424 | - "{}/acart"
425 | - "{}/access"
426 | - "{}/account"
427 | - "{}/achievo"
428 | - "{}/address"
429 | - "{}/admins"
430 | - "{}/0admin"
431 | - "{}/admin1"
432 | - "{}/admin2"
433 | - "{}/admin3"
434 | - "{}/admin4"
435 | - "{}/admin5"
436 | - "{}/_adm_"
437 | - "{}/_admin_"
438 | - "{}/_administrator_"
439 | - "{}/_adm"
440 | - "{}/_admin"
441 | - "{}/achtung"
442 | - "{}/_administrator"
443 | - "{}/AdminWeb"
444 | - "{}/administration.php"
445 | - "{}/links/login.php"
446 | - "{}/cms/_admin/logon.php"
447 | - "{}/typo3"
448 | - "{}/tienda/admin"
449 | - "{}/pma"
450 | - "{}/cms/login"
451 | - "{}/access.php"
452 | - "{}/sysadm.php"
453 | - "{}/adm2"
454 | - "{}/include/admin.php"
455 | - "{}/admin/moderator.php"
456 | - "{}/interactive/admin.php"
457 | - "{}/edit.php"
458 | - "{}/siteadmin"
459 | - "{}/hcaadmin.php"
460 | - "{}/svn"
461 | - "{}/blog/wp-login.php"
462 | - "{}/admin/log.php"
463 | - "{}/login/login.php"
464 | - "{}/adminka.php"
465 | - "{}/wholesale-login.php"
466 | - "{}/authorize.php"
467 | - "{}/editor"
468 | - "{}/base/admin"
469 | - "{}/includes/login.php"
470 | - "{}/site_admin/login.php"
471 | - "{}/statredir"
472 | - "{}/lists/admin"
473 | - "{}/sec/login.php"
474 | - "{}/bitrix/admin"
475 | - "{}/admin_tool"
476 | - "{}/cabinet"
477 | - "{}/klarnetCMS"
478 | - "{}/debug/rus/autorisation"
479 | - "{}/cms/admin"
480 | - "{}/Admin/private"
481 | - "{}/site/admin"
482 | - "{}/admen"
483 | - "{}/admin2/index"
484 | - "{}/db/admin.php"
485 | - "{}/admin/adm.php"
486 | - "{}/admin/admin"
487 | - "{}/manager/ispmgr"
488 | - "{}/login.aspx"
489 | - "{}/admin/login.asp"
490 | - "{}/admin/login.aspx"
491 | - "{}/moderator/admin.asp"
492 | - "{}/webadmin.asp"
493 | - "{}/webadmin/admin.asp"
494 | - "{}/author/Admin.aspx"
495 | - "{}/admin/userAdmin.aspx"
496 | - "{}/dbadmin"
497 | - "{}/AdministratorS/Admin.aspx"
498 | - "{}/admin/secure/admin.aspx"
499 | - "{}/bb-admin/admin.asp"
500 | - "{}/processlogin.php"
501 | - "{}/0manager"
502 | - "{}/acceso.asp"
503 | - "{}/acceso.aspx"
504 | - "{}/account.asp"
505 | - "{}/account.aspx"
506 | - "{}/wp-login.asp"
507 | - "{}/wp-login.aspx"
508 | - "{}/admin_login"
509 | - "{}/admin-login"
510 | - "{}/modelsearch"
511 | - "{}/nsw"
512 | - "{}/rcjakar"
513 | - "{}/private.php"
514 | - "{}/_vti_pvt"
515 | - "{}/_private"
516 | - "{}/admin1.php"
517 | - "{}/admin2.html"
518 | - "{}/yonetim.php"
519 | - "{}/yonetim.html"
520 | - "{}/yonetici.php"
521 | - "{}/yonetici.html"
522 | - "{}/admin1.asp"
523 | - "{}/admin2.asp"
524 | - "{}/yonetim.asp"
525 | - "{}/yonetici.asp"
526 | - "{}/admin/index.asp"
527 | - "{}/admin/home.asp"
528 | - "{}/admin/controlpanel.asp"
529 | - "{}/sysadmin.php"
530 | - "{}/sysadmin.html"
531 | - "{}/ur-admin.asp"
532 | - "{}/ur-admin.php"
533 | - "{}/ur-admin.html"
534 | - "{}/ur-admin"
535 | - "{}/administr8.php"
536 | - "{}/administr8.html"
537 | - "{}/administr8"
538 | - "{}/admin/acceso.php"
539 | - "{}/admin/acceso.asp"
540 | - "{}/admin/acceso.aspx"
541 | - "{}/admin_area/acceso.php"
542 | - "{}/admin_area/acceso.asp"
543 | - "{}/admin_area/acceso.aspx"
544 | - "{}/adminarea/acceso.php"
545 | - "{}/adminarea/acceso.asp"
546 | - "{}/adminarea/acceso.aspx"
547 | - "{}/admincontrol/acceso.php"
548 | - "{}/admincontrol/acceso.asp"
549 | - "{}/admincontrol/acceso.aspx"
550 | - "{}/admincpacceso.php"
551 | - "{}/admincpacceso.asp"
552 | - "{}/admincpacceso.aspx"
553 | - "{}/administrator/acceso.php"
554 | - "{}/administrator/acceso.asp"
555 | - "{}/administrator/acceso.aspx"
556 | - "{}/admin_login/acceso.php"
557 | - "{}/admin_login/acceso.asp"
558 | - "{}/admin_login/acceso.aspx"
559 | - "{}/adminlogin/acceso.php"
560 | - "{}/adminlogin/acceso.asp"
561 | - "{}/adminlogin/acceso.aspx"
562 | - "{}/webadmin/wp-login.php"
563 | - "{}/webadmin/wp-login.asp"
564 | - "{}/webadmin/wp-login.aspx"
565 | - "{}/usuario/wp-login.php"
566 | - "{}/usuario/wp-login.asp"
567 | - "{}/usuario/wp-login.aspx"
568 | - "{}/admin/webadmin.asp"
569 | - "{}/admin/webadmin.aspx"
570 | - "{}/admin/webadmin.php"
571 | - "{}/webadmin/user.php"
572 | - "{}/webadmin/user.asp"
573 | - "{}/webadmin/user.aspx"
574 | - "{}/bb-admin/user.php"
575 | - "{}/bb-admin/user.asp"
576 | - "{}/bb-admin/user.aspx"
577 | - "{}/controlpanel/user.php"
578 | - "{}/controlpanel/user.asp"
579 | - "{}/controlpanel/user.aspx"
580 | - "{}/admin-login/user.php"
581 | - "{}/admin-login/user.asp"
582 | - "{}/admin-login/user.aspx"
583 | - "{}/administrator/user.php"
584 | - "{}/administrator/user.asp"
585 | - "{}/administrator/user.aspx"
586 | - "{}/admin/user.php"
587 | - "{}/adm/user.php"
588 | - "{}/pages/moderator.php"
589 | - "{}/webadmin/moderator.php"
590 | - "{}/users/moderator.php"
591 | - "{}/usuario/user.php"
592 | - "{}/usuario/user.asp"
593 | - "{}/usuario/user.aspx"
594 | - "{}/alogin.aspx"
595 | - "{}/mysql"
596 | - "{}/myadmin"
597 | - "{}/sqlmanager"
598 | - "{}/mysqlmanager"
599 | - "{}/p/m/a"
600 | - "{}/phpmanager"
601 | - "{}/php-myadmin"
602 | - "{}/phpmy-admin"
603 | - "{}/sqlweb"
604 | - "{}/websql"
605 | - "{}/webdb"
606 | - "{}/mysqladmin"
607 | - "{}/mysql-admin"
608 | - "{}/phpmyadmin2"
609 | - "{}/phpMyAdmin-2"
610 | - "{}/php-my-admin"
611 | - "{}/phpMyAdmin-2.2.3"
612 | - "{}/phpMyAdmin-2.2.6"
613 | - "{}/phpMyAdmin-2.5.1"
614 | - "{}/phpMyAdmin-2.5.4"
615 | - "{}/phpMyAdmin-2.5.5-rc1"
616 | - "{}/phpMyAdmin-2.5.5-rc2"
617 | - "{}/phpMyAdmin-2.5.5"
618 | - "{}/phpMyAdmin-2.5.5-pl1"
619 | - "{}/phpMyAdmin-2.5.6-rc1"
620 | - "{}/phpMyAdmin-2.5.6-rc2"
621 | - "{}/phpMyAdmin-2.5.6"
622 | - "{}/phpMyAdmin-2.5.7"
623 | - "{}/phpMyAdmin-2.5.7-pl1"
624 | - "{}/phpMyAdmin-2.6.0-alpha"
625 | - "{}/phpMyAdmin-2.6.0-alpha2"
626 | - "{}/phpMyAdmin-2.6.0-beta1"
627 | - "{}/phpMyAdmin-2.6.0-beta2"
628 | - "{}/phpMyAdmin-2.6.0-rc1"
629 | - "{}/phpMyAdmin-2.6.0-rc2"
630 | - "{}/phpMyAdmin-2.6.0-rc3"
631 | - "{}/phpMyAdmin-2.6.0"
632 | - "{}/phpMyAdmin-2.6.0-pl1"
633 | - "{}/phpMyAdmin-2.6.0-pl2"
634 | - "{}/phpMyAdmin-2.6.0-pl3"
635 | - "{}/phpMyAdmin-2.6.1-rc1"
636 | - "{}/phpMyAdmin-2.6.1-rc2"
637 | - "{}/phpMyAdmin-2.6.1"
638 | - "{}/phpMyAdmin-2.6.1-pl1"
639 | - "{}/phpMyAdmin-2.6.1-pl2"
640 | - "{}/phpMyAdmin-2.6.1-pl3"
641 | - "{}/phpMyAdmin-2.6.2-rc1"
642 | - "{}/phpMyAdmin-2.6.2-beta1"
643 | - "{}/phpMyAdmin-2.6.2"
644 | - "{}/phpMyAdmin-2.6.2-pl1"
645 | - "{}/phpMyAdmin-2.6.3"
646 | - "{}/phpMyAdmin-2.6.3-rc1"
647 | - "{}/phpMyAdmin-2.6.3-pl1"
648 | - "{}/phpMyAdmin-2.6.4-rc1"
649 | - "{}/phpMyAdmin-2.6.4-pl1"
650 | - "{}/phpMyAdmin-2.6.4-pl2"
651 | - "{}/phpMyAdmin-2.6.4-pl3"
652 | - "{}/phpMyAdmin-2.6.4-pl4"
653 | - "{}/phpMyAdmin-2.6.4"
654 | - "{}/phpMyAdmin-2.7.0-beta1"
655 | - "{}/phpMyAdmin-2.7.0-rc1"
656 | - "{}/phpMyAdmin-2.7.0-pl1"
657 | - "{}/phpMyAdmin-2.7.0-pl2"
658 | - "{}/phpMyAdmin-2.7.0"
659 | - "{}/phpMyAdmin-2.8.0-beta1"
660 | - "{}/phpMyAdmin-2.8.0-rc2"
661 | - "{}/phpMyAdmin-2.8.0"
662 | - "{}/phpMyAdmin-2.8.0.1"
663 | - "{}/phpMyAdmin-2.8.0.2"
664 | - "{}/phpMyAdmin-2.8.0.3"
665 | - "{}/phpMyAdmin-2.8.0.4"
666 | - "{}/phpMyAdmin-2.8.1-rc1"
667 | - "{}/phpMyAdmin-2.8.1"
668 | - "{}/phpMyAdmin-2.8.2"
669 | - "{}/pma2005"
670 | - "{}/administratie"
671 | - "{}/admins.php"
672 | - "{}/useradmin"
673 | - "{}/sysadmins"
674 | - "{}/system-administration"
675 | - "{}/administrators"
676 | - "{}/pgadmin"
677 | - "{}/directadmin"
678 | - "{}/sql-admin"
679 | - "{}/newsadmin"
680 | - "{}/adminpro"
681 | - "{}/staradmin"
682 | - "{}/ServerAdministrator"
683 | - "{}/administer"
684 | - "{}/LiveUser_Admin"
685 | - "{}/sys-admin"
686 | - "{}/autologin"
687 | - "{}/microadmin"
688 | - "{}/monitoringswab"
689 | - "{}/support_login"
690 | - "{}/memlogin"
691 | - "{}/login-redirect"
692 | - "{}/sub-login"
693 | - "{}/login1"
694 | - "{}/dir-login"
695 | - "{}/login_db"
696 | - "{}/xlogin"
697 | - "{}/smblogin"
698 | - "{}/customer_login"
699 | - "{}/acct_login"
700 | - "{}/bigadmin"
701 | - "{}/project-admins"
702 | - "{}/phppgadmin"
703 | - "{}/pureadmin"
704 | - "{}/bbadmin"
705 | - "{}/administratoraccounts"
706 | - "{}/server"
707 | - "{}/database_administration"
708 | - "{}/power_user"
709 | - "{}/system_administration"
710 | - "{}/adminitem"
711 | - "{}/sysadm"
712 | - "{}/control"
713 | - "{}/accounts"
714 | - "{}/management"
715 | - "{}/phpSQLiteAdmin"
716 | - "{}/showlogin"
717 | - "{}/0admin/login.asp"
718 | - "{}/0manager/admin.asp"
719 | - "{}/admin/sendfile.asp"
720 | - "{}/admin/sndfile.asp"
721 | - "{}/admin/upfile.asp"
722 | - "{}/admin/upload.asp"
723 | - "{}/admin/uploadfaceok.asp"
724 | - "{}/admin/uploads.asp"
725 | - "{}/admin/uppic.asp"
726 | - "{}/adminadmin"
727 | - "{}/adminindex"
728 | - "{}/count_admin"
729 | - "{}/default_admin"
730 | - "{}/index/admin"
731 | - "{}/acesso"
732 | - "{}/adimin"
733 | - "{}/adiministrador"
734 | - "{}/adm/admin"
735 | - "{}/admin4_account"
736 | - "{}/admin4_colon"
737 | - "{}/admin/adm"
738 | - "{}/administracao"
739 | - "{}/banneradmin"
740 | - "{}/blogindex"
741 | - "{}/cadmins"
742 | - "{}/ccp14admin"
743 | - "{}/cmsadmin"
744 | - "{}/controle"
745 | - "{}/cpanel_file"
746 | - "{}/donos"
747 | - "{}/edit"
748 | - "{}/entrar"
749 | - "{}/entrar.html"
750 | - "{}/entrar.php"
751 | - "{}/ezsqliteadmin"
752 | - "{}/formslogin"
753 | - "{}/funcoes"
754 | - "{}/globes_admin"
755 | - "{}/hpwebjetadmin"
756 | - "{}/Indy_admin"
757 | - "{}/irc-macadmin"
758 | - "{}/key"
759 | - "{}/logar"
760 | - "{}/login"
761 | - "{}/loginflat"
762 | - "{}/login-us"
763 | - "{}/loginuser"
764 | - "{}/loginusuarios"
765 | - "{}/logo_sysadmin"
766 | - "{}/logout"
767 | - "{}/Lotus_Domino_Admin"
768 | - "{}/macadmin"
769 | - "{}/manuallogin"
770 | - "{}/membros"
771 | - "{}/meta_login"
772 | - "{}/navSiteAdmin"
773 | - "{}/net"
774 | - "{}/not"
775 | - "{}/openvpnadmin"
776 | - "{}/painel"
777 | - "{}/paineldecontrole"
778 | - "{}/pc"
779 | - "{}/pdc"
780 | - "{}/php"
781 | - "{}/phpldapadmin"
782 | - "{}/platz_login"
783 | - "{}/radmind"
784 | - "{}/radmind-1"
785 | - "{}/rcLogin"
786 | - "{}/saff"
787 | - "{}/senha"
788 | - "{}/senhas"
789 | - "{}/server_admin_small"
790 | - "{}/sff"
791 | - "{}/simpleLogin"
792 | - "{}/sistema"
793 | - "{}/sshadmin"
794 | - "{}/ss_vms_admin_sm"
795 | - "{}/SysAdmin2"
796 | - "{}/utility_login"
797 | - "{}/vadmind"
798 | - "{}/vmailadmin"
799 | - "{}/wizmysqladmin"
800 | - "{}/ccms"
801 | - "{}/ccms/login.php"
802 | - "{}/ccms/index.php"
803 | - "{}/0admin/"
804 | - "{}/0manager/"
805 | - "{}/Admin/"
806 | - "{}/Admin/private/"
807 | - "{}/AdminTools/"
808 | - "{}/AdminWeb/"
809 | - "{}/AdministratorS/Admin.aspx/"
810 | - "{}/Database_Administration/"
811 | - "{}/Indy_admin/"
812 | - "{}/LiveUser_Admin/"
813 | - "{}/Lotus_Domino_Admin/"
814 | - "{}/PSUser/"
815 | - "{}/Server.php"
816 | - "{}/Server/"
817 | - "{}/ServerAdministrator/"
818 | - "{}/Super-Admin/"
819 | - "{}/SysAdmin2/"
820 | - "{}/SysAdmin/"
821 | - "{}/UserLogin/"
822 | - "{}/_adm/"
823 | - "{}/_adm_/"
824 | - "{}/_admin/"
825 | - "{}/_admin_/"
826 | - "{}/_administrator/"
827 | - "{}/_administrator_/"
828 | - "{}/_private/"
829 | - "{}/_vti_pvt/"
830 | - "{}/a/"
831 | - "{}/aadmin/"
832 | - "{}/acart/"
833 | - "{}/acceso.asp/"
834 | - "{}/acceso.aspx/"
835 | - "{}/account.asp/"
836 | - "{}/account.aspx/"
837 | - "{}/account/"
838 | - "{}/accounts.php"
839 | - "{}/accounts/"
840 | - "{}/acct_login/"
841 | - "{}/acesso/"
842 | - "{}/achievo/"
843 | - "{}/achtung/"
844 | - "{}/address/"
845 | - "{}/adimin/"
846 | - "{}/adiministrador/"
847 | - "{}/adm2/"
848 | - "{}/adm/"
849 | - "{}/adm/admin/"
850 | - "{}/admen/"
851 | - "{}/admin1.htm"
852 | - "{}/admin1.html"
853 | - "{}/admin1/"
854 | - "{}/admin2/"
855 | - "{}/admin2/index/"
856 | - "{}/admin3/"
857 | - "{}/admin4/"
858 | - "{}/admin4_account/"
859 | - "{}/admin4_colon/"
860 | - "{}/admin5/"
861 | - "{}/admin-login/"
862 | - "{}/admin.asp/"
863 | - "{}/admin.aspx/"
864 | - "{}/admin.htm"
865 | - "{}/admin.php/"
866 | - "{}/admin/acceso.asp/"
867 | - "{}/admin/acceso.aspx/"
868 | - "{}/admin/acceso.php/"
869 | - "{}/admin/adm/"
870 | - "{}/admin/admin.asp/"
871 | - "{}/admin/admin.aspx/"
872 | - "{}/admin/admin/"
873 | - "{}/admin/adminLogin.htm"
874 | - "{}/admin/controlpanel.htm"
875 | - "{}/admin/login.aspx/"
876 | - "{}/admin/login.htm"
877 | - "{}/admin/secure/admin.aspx/"
878 | - "{}/admin/userAdmin.aspx/"
879 | - "{}/admin/webadmin.asp/"
880 | - "{}/admin/webadmin.aspx/"
881 | - "{}/admin/webadmin.php/"
882 | - "{}/admin_area.php"
883 | - "{}/admin_area/"
884 | - "{}/admin_area/acceso.asp/"
885 | - "{}/admin_area/acceso.aspx/"
886 | - "{}/admin_area/acceso.php/"
887 | - "{}/admin_login/"
888 | - "{}/admin_login/acceso.asp/"
889 | - "{}/admin_login/acceso.aspx/"
890 | - "{}/admin_login/acceso.php/"
891 | - "{}/admin_tool/"
892 | - "{}/adminadmin/"
893 | - "{}/adminarea/"
894 | - "{}/adminarea/acceso.asp/"
895 | - "{}/adminarea/acceso.aspx/"
896 | - "{}/adminarea/acceso.php/"
897 | - "{}/admincontrol/"
898 | - "{}/admincontrol/acceso.asp/"
899 | - "{}/admincontrol/acceso.aspx/"
900 | - "{}/admincontrol/acceso.php/"
901 | - "{}/admincp/"
902 | - "{}/admincp/login.php"
903 | - "{}/admincpacceso.asp/"
904 | - "{}/admincpacceso.aspx/"
905 | - "{}/admincpacceso.php/"
906 | - "{}/adminindex/"
907 | - "{}/administer/"
908 | - "{}/administr8/"
909 | - "{}/administracao/"
910 | - "{}/administrador/"
911 | - "{}/administrar/"
912 | - "{}/administratie/"
913 | - "{}/administration/"
914 | - "{}/administrator/acceso.asp/"
915 | - "{}/administrator/acceso.aspx/"
916 | - "{}/administrator/acceso.php/"
917 | - "{}/administratoraccounts/"
918 | - "{}/administratorlogin/"
919 | - "{}/administrators.php"
920 | - "{}/administrators/"
921 | - "{}/administrivia/"
922 | - "{}/adminitem.php"
923 | - "{}/adminitem/"
924 | - "{}/adminitems.php"
925 | - "{}/adminitems/"
926 | - "{}/adminlogin/acceso.asp/"
927 | - "{}/adminlogin/acceso.aspx/"
928 | - "{}/adminlogin/acceso.php/"
929 | - "{}/adminpanel/"
930 | - "{}/adminpro/"
931 | - "{}/adminsite/"
932 | - "{}/apanel/"
933 | - "{}/auth.php"
934 | - "{}/auth/"
935 | - "{}/auth/login/"
936 | - "{}/authadmin.php"
937 | - "{}/authenticate.php"
938 | - "{}/authentication.php"
939 | - "{}/author/Admin.aspx/"
940 | - "{}/authuser.php"
941 | - "{}/autologin.php"
942 | - "{}/autologin/"
943 | - "{}/backend-admin/"
944 | - "{}/backend/"
945 | - "{}/banneradmin/"
946 | - "{}/base/admin/"
947 | - "{}/bb-admin/"
948 | - "{}/bb-admin/admin.asp/"
949 | - "{}/bbadmin/"
950 | - "{}/bigadmin/"
951 | - "{}/bitrix/admin/"
952 | - "{}/blogindex/"
953 | - "{}/cabinet/"
954 | - "{}/cadmins/"
955 | - "{}/ccms/"
956 | - "{}/ccp14admin/"
957 | - "{}/cgi-bin/loginphp"
958 | - "{}/check.php"
959 | - "{}/checkadmin.php"
960 | - "{}/checklogin.php"
961 | - "{}/checkuser.php"
962 | - "{}/cms/"
963 | - "{}/cms/admin/"
964 | - "{}/cms/login/"
965 | - "{}/cmsadmin.php"
966 | - "{}/cmsadmin/"
967 | - "{}/config/"
968 | - "{}/control.php"
969 | - "{}/control/"
970 | - "{}/controle/"
971 | - "{}/controlpanel/"
972 | - "{}/count_admin/"
973 | - "{}/cp/"
974 | - "{}/cpanel_file/"
975 | - "{}/customer_login/"
976 | - "{}/dbadmin/"
977 | - "{}/debug/rus/autorisation/"
978 | - "{}/dir-login/"
979 | - "{}/directadmin/"
980 | - "{}/donos/"
981 | - "{}/edit/"
982 | - "{}/editor/"
983 | - "{}/entrar/"
984 | - "{}/ezsqliteadmin/"
985 | - "{}/fileadmin.php"
986 | - "{}/fileadmin/"
987 | - "{}/formslogin/"
988 | - "{}/forum/admin/"
989 | - "{}/funcoes/"
990 | - "{}/fw-panel"
991 | - "{}/globes_admin/"
992 | - "{}/hpwebjetadmin/"
993 | - "{}/instadmin/"
994 | - "{}/instranet/"
995 | - "{}/irc-macadmin/"
996 | - "{}/isadmin.php"
997 | - "{}/joomla/administrator/"
998 | - "{}/key/"
999 | - "{}/klarnetCMS/"
1000 | - "{}/kpanel/"
1001 | - "{}/letmein.php"
1002 | - "{}/letmein/"
1003 | - "{}/lists/admin/"
1004 | - "{}/log-in.php"
1005 | - "{}/log-in/"
1006 | - "{}/log_in.php"
1007 | - "{}/log_in/"
1008 | - "{}/logar/"
1009 | - "{}/login1/"
1010 | - "{}/login1php"
1011 | - "{}/login-redirect/"
1012 | - "{}/login-us/"
1013 | - "{}/login.aspx/"
1014 | - "{}/login.htm"
1015 | - "{}/login_admin/"
1016 | - "{}/login_adminphp"
1017 | - "{}/login_db/"
1018 | - "{}/login_out/"
1019 | - "{}/login_outphp"
1020 | - "{}/login_userphp"
1021 | - "{}/loginerror/"
1022 | - "{}/loginflat/"
1023 | - "{}/loginok/"
1024 | - "{}/loginphp"
1025 | - "{}/logins/"
1026 | - "{}/loginsave/"
1027 | - "{}/loginsuper/"
1028 | - "{}/loginsuperphp"
1029 | - "{}/loginuser/"
1030 | - "{}/loginusuarios/"
1031 | - "{}/logo_sysadmin/"
1032 | - "{}/logon/"
1033 | - "{}/logout/"
1034 | - "{}/logoutphp"
1035 | - "{}/macadmin/"
1036 | - "{}/mag/admin/"
1037 | - "{}/manage.php"
1038 | - "{}/management.php"
1039 | - "{}/management/"
1040 | - "{}/manager.php"
1041 | - "{}/manager/"
1042 | - "{}/manager/ispmgr/"
1043 | - "{}/manuallogin/"
1044 | - "{}/member.php"
1045 | - "{}/member/"
1046 | - "{}/memberadmin/"
1047 | - "{}/members.php"
1048 | - "{}/members/"
1049 | - "{}/membros/"
1050 | - "{}/memlogin/"
1051 | - "{}/meta_login/"
1052 | - "{}/modelsearch/"
1053 | - "{}/moderator/admin.asp/"
1054 | - "{}/modules/admin/"
1055 | - "{}/myadmin/"
1056 | - "{}/mysql-admin/"
1057 | - "{}/mysql/"
1058 | - "{}/mysqladmin/"
1059 | - "{}/mysqlmanager/"
1060 | - "{}/navSiteAdmin/"
1061 | - "{}/nedmin/production/index.php"
1062 | - "{}/nedmin/production/login.php"
1063 | - "{}/net/"
1064 | - "{}/newsadmin/"
1065 | - "{}/not/"
1066 | - "{}/nsw/"
1067 | - "{}/openvpnadmin/"
1068 | - "{}/p/m/a/"
1069 | - "{}/pages/admin/"
1070 | - "{}/painel/"
1071 | - "{}/paineldecontrole/"
1072 | - "{}/panel-administracion/"
1073 | - "{}/panel.php"
1074 | - "{}/panel/"
1075 | - "{}/pc/"
1076 | - "{}/pdc/"
1077 | - "{}/pgadmin/"
1078 | - "{}/php-my-admin/"
1079 | - "{}/php-myadmin/"
1080 | - "{}/php/"
1081 | - "{}/phpMyAdmin-2.2.3/"
1082 | - "{}/phpMyAdmin-2.2.6/"
1083 | - "{}/phpMyAdmin-2.5.1/"
1084 | - "{}/phpMyAdmin-2.5.4/"
1085 | - "{}/phpMyAdmin-2.5.5-pl1/"
1086 | - "{}/phpMyAdmin-2.5.5-rc1/"
1087 | - "{}/phpMyAdmin-2.5.5-rc2/"
1088 | - "{}/phpMyAdmin-2.5.5/"
1089 | - "{}/phpMyAdmin-2.5.6-rc1/"
1090 | - "{}/phpMyAdmin-2.5.6-rc2/"
1091 | - "{}/phpMyAdmin-2.5.6/"
1092 | - "{}/phpMyAdmin-2.5.7-pl1/"
1093 | - "{}/phpMyAdmin-2.5.7/"
1094 | - "{}/phpMyAdmin-2.6.0-alpha2/"
1095 | - "{}/phpMyAdmin-2.6.0-alpha/"
1096 | - "{}/phpMyAdmin-2.6.0-beta1/"
1097 | - "{}/phpMyAdmin-2.6.0-beta2/"
1098 | - "{}/phpMyAdmin-2.6.0-pl1/"
1099 | - "{}/phpMyAdmin-2.6.0-pl2/"
1100 | - "{}/phpMyAdmin-2.6.0-pl3/"
1101 | - "{}/phpMyAdmin-2.6.0-rc1/"
1102 | - "{}/phpMyAdmin-2.6.0-rc2/"
1103 | - "{}/phpMyAdmin-2.6.0-rc3/"
1104 | - "{}/phpMyAdmin-2.6.0/"
1105 | - "{}/phpMyAdmin-2.6.1-pl1/"
1106 | - "{}/phpMyAdmin-2.6.1-pl2/"
1107 | - "{}/phpMyAdmin-2.6.1-pl3/"
1108 | - "{}/phpMyAdmin-2.6.1-rc1/"
1109 | - "{}/phpMyAdmin-2.6.1-rc2/"
1110 | - "{}/phpMyAdmin-2.6.1/"
1111 | - "{}/phpMyAdmin-2.6.2-beta1/"
1112 | - "{}/phpMyAdmin-2.6.2-pl1/"
1113 | - "{}/phpMyAdmin-2.6.2-rc1/"
1114 | - "{}/phpMyAdmin-2.6.2/"
1115 | - "{}/phpMyAdmin-2.6.3-pl1/"
1116 | - "{}/phpMyAdmin-2.6.3-rc1/"
1117 | - "{}/phpMyAdmin-2.6.3/"
1118 | - "{}/phpMyAdmin-2.6.4-pl1/"
1119 | - "{}/phpMyAdmin-2.6.4-pl2/"
1120 | - "{}/phpMyAdmin-2.6.4-pl3/"
1121 | - "{}/phpMyAdmin-2.6.4-pl4/"
1122 | - "{}/phpMyAdmin-2.6.4-rc1/"
1123 | - "{}/phpMyAdmin-2.6.4/"
1124 | - "{}/phpMyAdmin-2.7.0-beta1/"
1125 | - "{}/phpMyAdmin-2.7.0-pl1/"
1126 | - "{}/phpMyAdmin-2.7.0-pl2/"
1127 | - "{}/phpMyAdmin-2.7.0-rc1/"
1128 | - "{}/phpMyAdmin-2.7.0/"
1129 | - "{}/phpMyAdmin-2.8.0-beta1/"
1130 | - "{}/phpMyAdmin-2.8.0-rc2/"
1131 | - "{}/phpMyAdmin-2.8.0.1/"
1132 | - "{}/phpMyAdmin-2.8.0.2/"
1133 | - "{}/phpMyAdmin-2.8.0.3/"
1134 | - "{}/phpMyAdmin-2.8.0.4/"
1135 | - "{}/phpMyAdmin-2.8.0/"
1136 | - "{}/phpMyAdmin-2.8.1-rc1/"
1137 | - "{}/phpMyAdmin-2.8.1/"
1138 | - "{}/phpMyAdmin-2.8.2/"
1139 | - "{}/phpMyAdmin-2/"
1140 | - "{}/phpMyAdmin/"
1141 | - "{}/phpSQLiteAdmin/"
1142 | - "{}/phpldapadmin/"
1143 | - "{}/phpmanager/"
1144 | - "{}/phpmy-admin/"
1145 | - "{}/phpmyadmin2/"
1146 | - "{}/phppgadmin/"
1147 | - "{}/platz_login/"
1148 | - "{}/pma2005/"
1149 | - "{}/pma/"
1150 | - "{}/power_user/"
1151 | - "{}/private.php/"
1152 | - "{}/processlogin.php/"
1153 | - "{}/project-admins/"
1154 | - "{}/pureadmin/"
1155 | - "{}/radmind-1/"
1156 | - "{}/radmind/"
1157 | - "{}/rcLogin/"
1158 | - "{}/rcjakar/"
1159 | - "{}/registration/"
1160 | - "{}/relogin.htm"
1161 | - "{}/relogin.html"
1162 | - "{}/relogin.php"
1163 | - "{}/saff/"
1164 | - "{}/secret/"
1165 | - "{}/secrets/"
1166 | - "{}/secure/"
1167 | - "{}/security/"
1168 | - "{}/senha/"
1169 | - "{}/senhas/"
1170 | - "{}/server_admin_small/"
1171 | - "{}/sff/"
1172 | - "{}/showlogin/"
1173 | - "{}/sign-in.php"
1174 | - "{}/sign-in/"
1175 | - "{}/sign_in.php"
1176 | - "{}/sign_in/"
1177 | - "{}/signin.php"
1178 | - "{}/signin/"
1179 | - "{}/simpleLogin/"
1180 | - "{}/sistema/"
1181 | - "{}/site/admin/"
1182 | - "{}/siteadmin.php"
1183 | - "{}/siteadmin/"
1184 | - "{}/smblogin/"
1185 | - "{}/sql-admin/"
1186 | - "{}/sqlmanager/"
1187 | - "{}/sqlweb/"
1188 | - "{}/ss_vms_admin_sm/"
1189 | - "{}/sshadmin/"
1190 | - "{}/staradmin/"
1191 | - "{}/statredir/"
1192 | - "{}/sub-login/"
1193 | - "{}/super1/"
1194 | - "{}/super1php"
1195 | - "{}/super_indexphp"
1196 | - "{}/super_loginphp"
1197 | - "{}/superman/"
1198 | - "{}/supermanagerphp"
1199 | - "{}/supermanphp"
1200 | - "{}/superphp"
1201 | - "{}/superuser.php"
1202 | - "{}/superuser/"
1203 | - "{}/superuserphp"
1204 | - "{}/supervise/"
1205 | - "{}/supervise/Loginphp"
1206 | - "{}/supervisor/"
1207 | - "{}/support_login/"
1208 | - "{}/svn/"
1209 | - "{}/sys-admin/"
1210 | - "{}/sysadm/"
1211 | - "{}/sysadmins/"
1212 | - "{}/system-administration/"
1213 | - "{}/system_administration/"
1214 | - "{}/typo3/"
1215 | - "{}/ur-admin/"
1216 | - "{}/user/"
1217 | - "{}/user/admin.php"
1218 | - "{}/useradmin/"
1219 | - "{}/userlogin.php"
1220 | - "{}/users.php"
1221 | - "{}/users/"
1222 | - "{}/users/admin.php"
1223 | - "{}/usr/"
1224 | - "{}/usuario/"
1225 | - "{}/usuario/user.asp/"
1226 | - "{}/usuario/user.aspx/"
1227 | - "{}/usuario/user.php/"
1228 | - "{}/usuario/wp-login.asp/"
1229 | - "{}/usuario/wp-login.aspx/"
1230 | - "{}/usuario/wp-login.php/"
1231 | - "{}/usuarios/"
1232 | - "{}/utility_login/"
1233 | - "{}/uvpanel/"
1234 | - "{}/vadmind/"
1235 | - "{}/vmailadmin/"
1236 | - "{}/vorod.php"
1237 | - "{}/vorod/"
1238 | - "{}/vorud.php"
1239 | - "{}/vorud/"
1240 | - "{}/webadmin.asp/"
1241 | - "{}/webadmin/"
1242 | - "{}/webadmin/admin.asp/"
1243 | - "{}/webadmin/user.asp/"
1244 | - "{}/webadmin/user.aspx/"
1245 | - "{}/webadmin/user.php/"
1246 | - "{}/webadmin/wp-login.asp/"
1247 | - "{}/webadmin/wp-login.aspx/"
1248 | - "{}/webadmin/wp-login.php/"
1249 | - "{}/webdb/"
1250 | - "{}/webmaster.php"
1251 | - "{}/webmaster/"
1252 | - "{}/websql/"
1253 | - "{}/wizmysqladmin/"
1254 | - "{}/wp-admin/"
1255 | - "{}/wp-login.asp/"
1256 | - "{}/wp-login.aspx/"
1257 | - "{}/wp-login.php/"
1258 | - "{}/wp-login/"
1259 | - "{}/xlogin/"
1260 | - "{}/wp-content/plugins/"
1261 | - "{}/wp-includes/"
1262 | - "{}/user/login/"
1263 | - "{}/admin/login/"
1264 | - "{}/user/reset/"
1265 | - "{}/admin/settings/"
1266 | - "{}/adminer/"
1267 | - "{}/phpmyadmin/sql.php"
1268 | - "{}/phpmyadmin-2.5/"
1269 | - "{}/filemanager/"
1270 | - "{}/fileexplorer/"
1271 | - "{}/uploadfile/"
1272 | - "{}/uploadpanel/"
1273 | - "{}/uploadadmin/"
1274 | - "{}/uploadarea/"
1275 | - "{}/webshell.php"
1276 | - "{}/backdoor.php"
1277 | - "{}/r57.php"
1278 | - "{}/c99.php"
1279 | - "{}/cmd.php"
1280 | - "{}/upload.php"
1281 | - "{}/shell.php"
1282 | - "{}/p0wned.php"
1283 | - "{}/phpshell.php"
1284 | - "{}/exec.php"
1285 | - "{}/shell_backdoor.php"
1286 | - "{}/exploit.php"
1287 | - "{}/exploit/upload.php"
1288 | - "{}/remoteexploit.php"
1289 | - "{}/shell-exploit.php"
1290 | - "{}/reverse-shell.php"
1291 | - "{}/payload.php"
1292 | - "{}/pwned.php"
1293 | - "{}/rootkit.php"
1294 | - "{}/login_redirect.php"
1295 | - "{}/authent.php"
1296 | - "{}/loginadmin/"
1297 | - "{}/panel-login.php"
1298 | - "{}/shell.php?cmd="
1299 | - "{}/backdoor.php?exec="
1300 | - "{}/upload.php?file="
1301 | - "{}/execshell.php?run="
1302 | - "{}/webshell.php?cmd="
1303 | - "{}/hidden-backdoor.php?command="
1304 | - "{}/admin/proxy/"
1305 | - "{}/admin/caching/"
1306 | - "{}/admin/cache/"
1307 | - "{}/adminpanel/proxy/"
1308 | - "{}/proxyadmin/"
1309 | - "{}/hiddenadmin/"
1310 | - "{}/plesk/"
1311 | - "{}/vesta/"
1312 | - "{}/ispconfig/"
1313 | - "{}/webmin/"
1314 | - "{}/virtualmin/"
1315 | - "{}/kloxo/"
1316 | - "{}/webuzo/"
1317 | - "{}/system/admin/"
1318 | - "{}/support/admin/"
1319 | - "{}/helpdesk/"
1320 | - "{}/cmd.jsp"
1321 | - "{}/shell.jsp"
1322 | - "{}/shell.aspx"
1323 | - "{}/backdoor.jsp"
1324 | - "{}/c99shell.php"
1325 | - "{}/r57shell.php"
1326 | - "{}/backdoor.cgi"
1327 | - "{}/shell.cgi"
1328 | - "{}/cmd.cgi"
1329 | - "{}/webshell.cgi"
1330 | - "{}/uploadshell.php"
1331 | - "{}/bash.php"
1332 | - "{}/shell.asp"
1333 | - "{}/sh.php"
1334 | - "{}/sh3ll.php"
1335 | - "{}/webshell.aspx"
1336 | - "{}/uploadfile.php"
1337 | - "{}/phpshell.jsp"
1338 | - "{}/cmd-backdoor.php"
1339 | - "{}/cmd-backdoor.jsp"
1340 | - "{}/backdoorfile.php"
1341 | - "{}/shell-auth.php"
1342 | - "{}/adminshell.php"
1343 | - "{}/shell_terminal.php"
1344 | - "{}/ajaxshell.php"
1345 | - "{}/terminal.php"
1346 | - "{}/backdooradmin.php"
1347 | - "{}/shellupload.php"
1348 | - "{}/shell-backdoor.php"
1349 | - "{}/superadmin.php"
1350 | - "{}/useradmin.php"
1351 | - "{}/root-access.php"
1352 | - "{}/root-shell.php"
1353 | - "{}/php-shell.php"
1354 | - "{}/fileexplorer.php"
1355 | - "{}/filemanager.php"
1356 | - "{}/cmdshell.php"
1357 | - "{}/cmdshell.jsp"
1358 | - "{}/system-shell.php"
1359 | - "{}/phpmyadmin-shell.php"
1360 | - "{}/database-shell.php"
1361 | - "{}/exec-code.php"
1362 | - "{}/webshell-php.php"
1363 | - "{}/sh-webshell.php"
1364 | - "{}/cmd-webshell.php"
1365 | - "{}/webadmin-backdoor.php"
1366 | - "{}/filemanager-shell.php"
1367 | - "{}/web-shell.php"
1368 | - "{}/sh3ll.jsp"
1369 | - "{}/sp_shell.php"
1370 | - "{}/backdoor-sp.php"
1371 | - "{}/upload-backdoor.php"
1372 | - "{}/shell-exec.php"
1373 | - "{}/hacked.php"
1374 | - "{}/system-exec.php"
1375 | - "{}/adminwebshell.php"
1376 | - "{}/adminwebshell.jsp"
1377 | - "{}/adminexec.php"
1378 | - "{}/superuser-shell.php"
1379 | - "{}/hidden-backdoor.php"
1380 | - "{}/root-webshell.php"
1381 | - "{}/cmd_exec.php"
1382 | - "{}/file-shell.php"
1383 | - "{}/mysql-shell.php"
1384 | - "{}/php-shell.jsp"
1385 | - "{}/webshell-login.php"
1386 | - "{}/shell_authentication.php"
1387 | - "{}/superadmin-shell.php"
1388 | - "{}/sql-shell.php"
1389 | - "{}/sqli-shell.php"
1390 | - "{}/panel-backdoor.php"
1391 | - "{}/console-backdoor.php"
1392 | - "{}/console-shell.php"
1393 | - "{}/sp0wned.php"
1394 | - "{}/php-webshell.jsp"
1395 | - "{}/webshell-uploader.php"
1396 | - "{}/system-backdoor.php"
1397 | - "{}/web-backdoor.php"
1398 | - "{}/system-exploit.php"
1399 | - "{}/sh-backdoor.php"
1400 | - "{}/proxy-shell.php"
1401 | - "{}/web-backdoor.jsp"
1402 | - "{}/fileshell.php"
1403 | - "{}/fileshell.jsp"
1404 | - "{}/debugger.php"
1405 | - "{}/debugger.jsp"
1406 | - "{}/backdoor_exec.php"
1407 | - "{}/uploadbackdoor.php"
1408 | - "{}/upload-backdoor.jsp"
1409 | - "{}/r57-backdoor.php"
1410 | - "{}/c99-backdoor.php"
1411 | - "{}/php-backdoor.jsp"
1412 | - "{}/c99shell.jsp"
1413 | - "{}/panel-admin.php"
1414 | - "{}/web-admin.php"
1415 | - "{}/php-my-admin.php"
1416 | - "{}/db-shell.php"
1417 | - "{}/db-backdoor.php"
1418 | - "{}/cpanel-backdoor.php"
1419 | - "{}/cpanel-backdoor.jsp"
1420 | - "{}/hackshell.php"
1421 | - "{}/remotetool.php"
1422 | - "{}/server-shell.php"
1423 | - "{}/access-shell.php"
1424 | - "{}/root-shell.jsp"
1425 | - "{}/admin-tools.php"
1426 | - "{}/remote-access.php"
1427 | - "{}/cpanel-admin.php"
1428 | - "{}/cpanel-admin.jsp"
1429 | - "{}/web-file-manager.php"
1430 | - "{}/exec-backdoor.php"
1431 | - "{}/admin-backdoor.jsp"
1432 | - "{}/sh3ll-backdoor.php"
1433 | - "{}/exploit-shell.php"
1434 | - "{}/ajax-backdoor.php"
1435 | - "{}/php-remote-shell.php"
1436 | - "{}/remote-shell.php"
1437 | - "{}/phpmyadmin-backdoor.php"
1438 | - "{}/hackershell.php"
1439 | - "{}/web-shellback.php"
1440 | - "{}/debug-backdoor.php"
1441 | - "{}/exec-remote.php"
1442 | - "{}/cmd-exploit.php"
1443 | - "{}/upload-shell.php"
1444 | - "{}/uploadshell.jsp"
1445 | - "{}/backdoor-upload.php"
1446 | - "{}/terminal-backdoor.php"
1447 | - "{}/ssh-backdoor.php"
1448 | - "{}/fileupload-backdoor.php"
1449 | - "{}/access-sudo.php"
1450 | - "{}/root-access.jsp"
1451 | - "{}/root-exploit.php"
1452 | - "{}/backdoor-exploit.php"
1453 | - "{}/user-shell.php"
1454 | - "{}/shell"
1455 | - "{}/cmd.aspx"
1456 | - "{}/webshell.jsp"
1457 | - "{}/shell.html"
1458 | - "{}/shell.htm"
1459 | - "{}/backdoor"
1460 | - "{}/backdoor.aspx"
1461 | - "{}/r57.jsp"
1462 | - "{}/c99.jsp"
1463 | - "{}/reverse.php"
1464 | - "{}/reverse"
1465 | - "{}/p0wned.jsp"
1466 | - "{}/admin_shell.php"
1467 | - "{}/execute.php"
1468 | - "{}/uploader.php"
1469 | - "{}/uploader"
1470 | - "{}/exec.jsp"
1471 | - "{}/php-backdoor.php"
1472 | - "{}/webshell-backdoor.php"
1473 | - "{}/upload_backdoor.php"
1474 | - "{}/shell_admin.php"
1475 | - "{}/shell_upload.php"
1476 | - "{}/remote.php"
1477 | - "{}/hack.php"
1478 | - "{}/cmd_hack.php"
1479 | - "{}/hack.jsp"
1480 | - "{}/hack_shell.php"
1481 | - "{}/webshell-backdoor.jsp"
1482 | - "{}/mywebshell.php"
1483 | - "{}/mywebshell.jsp"
1484 | - "{}/uploadwebshell.php"
1485 | - "{}/shell_exec.php"
1486 | - "{}/l337.php"
1487 | - "{}/jsp_shell.php"
1488 | - "{}/terminal.jsp"
1489 | - "{}/webterminal.php"
1490 | - "{}/web-terminal.php"
1491 | - "{}/webshell_upload.php"
1492 | - "{}/shell-code.php"
1493 | - "{}/cmd-code.php"
1494 | - "{}/fileupload.php"
1495 | - "{}/fileexplorer.jsp"
1496 | - "{}/filemanager.jsp"
1497 | - "{}/secure-backdoor.php"
1498 | - "{}/securedshell.php"
1499 | - "{}/php-webshell.php"
1500 | - "{}/php-web-shell.php"
1501 | - "{}/command-exec.php"
1502 | - "{}/cmd-exec.php"
1503 | - "{}/admin-backdoor.php"
1504 | - "{}/admin-shell.jsp"
1505 | - "{}/webshell_admin.php"
1506 | - "{}/cmdpanel.php"
1507 | - "{}/superuser-backdoor.php"
1508 | - "{}/web-admin-backdoor.php"
1509 | - "{}/fileupload_shell.php"
1510 | - "{}/server-exec.php"
1511 | - "{}/upload-shell.jsp"
1512 | - "{}/cmd-hack.jsp"
1513 | - "{}/admin/tools/"
1514 | - "{}/adminpanel/login/"
1515 | - "{}/admin/config/"
1516 | - "{}/admin/cpanel/"
1517 | - "{}/adminconsole/"
1518 | - "{}/admin/auth/"
1519 | - "{}/systempanel/"
1520 | - "{}/adminstatus/"
1521 | - "{}/adminview/"
1522 | - "{}/adminupdate/"
1523 | - "{}/admindashboard/"
1524 | - "{}/adminareas/"
1525 | - "{}/dashboard/"
1526 | - "{}/serveradmin/"
1527 | - "{}/portaladmin/"
1528 | - "{}/cloudadmin/"
1529 | - "{}/admincenter/"
1530 | - "{}/adminzone/"
1531 | - "{}/admin-panel/"
1532 | - "{}/systemcontrol/"
1533 | - "{}/webadminpanel/"
1534 | - "{}/adminpanelv2/"
1535 | - "{}/serverconsole/"
1536 | - "{}/managepanel/"
1537 | - "{}/adminconfig/"
1538 | - "{}/adminaction/"
1539 | - "{}/useraccount/"
1540 | - "{}/systemadmin/"
1541 | - "{}/adminstats/"
1542 | - "{}/adminpage/"
1543 | - "{}/siteadmin/login/"
1544 | - "{}/accesscontrol/"
1545 | - "{}/adminwebshell/"
1546 | - "{}/webshelladmin/"
1547 | - "{}/backdoorlogin/"
1548 | - "{}/adminpanel/auth/"
1549 | - "{}/userpanel/"
1550 | - "{}/configuracion/"
1551 | - "{}/iniciar-sesion/"
1552 | - "{}/login_user/"
1553 | - "{}/wp-content/"
1554 | - "{}/plugins/"
1555 | - "{}/admin-tools/"
1556 | - "{}/panel-de-control/"
1557 | - "{}/es/admin/"
1558 | - "{}/adminstrar/"
1559 | - "{}/seguridad/"
1560 | - "{}/back-end/"
1561 | - "{}/authentification/"
1562 | - "{}/connexion/"
1563 | - "{}/paneladmin/"
1564 | - "{}/administração/"
1565 | - "{}/connexion-utilisateur/"
1566 | - "{}/connexion-admin/"
1567 | - "{}/adminpannel/"
1568 | - "{}/admingrupo/"
1569 | - "{}/superadmin/"
1570 | - "{}/secureadmin/"
1571 | - "{}/administrateur/"
1572 | - "{}/admin-area/"
1573 | - "{}/control-panel/"
1574 | - "{}/interfaceadmin/"
1575 | - "{}/admininterface/"
1576 | - "{}/managersystem/"
1577 | - "{}/paneldecontrol/"
1578 | - "{}/gestion/"
1579 | - "{}/adminroot/"
1580 | - "{}/adminbackdoor/"
1581 | - "{}/admin_panel/"
1582 | - "{}/superpanel/"
1583 | - "{}/administradorlogin/"
1584 | - "{}/cloudpanel/"
1585 | - "{}/paneladministrator/"
1586 | - "{}/paneles/"
1587 | - "{}/superadmin/login/"
1588 | - "{}/su-login/"
1589 | - "{}/admin/authentication/"
1590 | - "{}/adminpannel-login/"
1591 | - "{}/administratorpanel/"
1592 | - "{}/panel-de-gestion/"
1593 | - "{}/tpanel/"
1594 | - "{}/backoffice/"
1595 | - "{}/admin_backups/"
1596 | - "{}/back-end/admin/"
1597 | - "{}/adminpath/"
1598 | - "{}/administrator-login/"
1599 | - "{}/manage-admin/"
1600 | - "{}/backdoor-admin/"
1601 | - "{}/backdoor/admin/"
1602 | - "{}/admin_path/"
1603 | - "{}/admincontrolpanel/"
1604 | - "{}/system_admin/"
1605 | - "{}/admin_entrar/"
1606 | - "{}/admin_dashboard/"
1607 | - "{}/webshell/"
1608 | - "{}/panel_webadmin/"
1609 | - "{}/admin_management/"
1610 | - "{}/backdoorconsole/"
1611 | - "{}/manage_panel/"
1612 | - "{}/accessadmin/"
1613 | - "{}/login01/"
1614 | - "{}/adminlogin01/"
1615 | - "{}/admin_backdoor/"
1616 | - "{}/securepanel/"
1617 | - "{}/adminpanel_secure/"
1618 | - "{}/webbackdoor/"
1619 | - "{}/admin-dashboard/"
1620 | - "{}/login/admindashboard/"
1621 | - "{}/admin_only/"
1622 | - "{}/admin-login.asp/"
1623 | - "{}/admin-2/"
1624 | - "{}/securitypanel/"
1625 | - "{}/entrar-sistema/"
1626 | - "{}/benutzer/login/"
1627 | - "{}/adminpanel_de/"
1628 | - "{}/loginadmin_de/"
1629 | - "{}/log_in_admin/"
1630 | - "{}/administration_fr/"
1631 | - "{}/panel-admin/"
1632 | - "{}/connexionadmin/"
1633 | - "{}/admin-login-fr/"
1634 | - "{}/adminpannel-fr/"
1635 | - "{}/panel-gestion/"
1636 | - "{}/panel-control/"
1637 | - "{}/panelcontrol/"
1638 | - "{}/gestionadmin/"
1639 | - "{}/iniciar-sesion-admin/"
1640 | - "{}/admin-login-es/"
1641 | - "{}/adminsecure/"
1642 | - "{}/loginadmin-pt/"
1643 | - "{}/adminstrador/"
1644 | - "{}/paneladministrativo/"
1645 | - "{}/admin-log/"
1646 | - "{}/loginadmin-it/"
1647 | - "{}/adminlogin-it/"
1648 | - "{}/adminpanel-it/"
1649 | - "{}/gestioneadmin/"
1650 | - "{}/paneladministration/"
1651 | - "{}/login-administrator/"
1652 | - "{}/administrare/"
1653 | - "{}/utilisateur-admin/"
1654 | - "{}/adminconnection/"
1655 | - "{}/beheer-login/"
1656 | - "{}/beheerder-panel/"
1657 | - "{}/systembeheer/"
1658 | - "{}/loginadminnl/"
1659 | - "{}/beheerpanel/"
1660 | - "{}/adminarea-pl/"
1661 | - "{}/logowanie-admin/"
1662 | - "{}/administracja/"
1663 | - "{}/login-pf/"
1664 | - "{}/admin-login-se/"
1665 | - "{}/adminpanel-fi/"
1666 | - "{}/admin-login-no/"
1667 | - "{}/admin-panel-pl/"
--------------------------------------------------------------------------------
/okadminfinder/assets/user-agents.yml:
--------------------------------------------------------------------------------
1 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10; rv:33.0) Gecko/20100101 Firefox/33.0"
2 | - "Mozilla/5.0 (X11; Linux i586; rv:31.0) Gecko/20100101 Firefox/31.0"
3 | - "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20130401 Firefox/31.0"
4 | - "Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0"
5 | - "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20120101 Firefox/29.0"
6 | - "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/29.0"
7 | - "Mozilla/5.0 (X11; OpenBSD amd64; rv:28.0) Gecko/20100101 Firefox/28.0"
8 | - "Mozilla/5.0 (X11; Linux x86_64; rv:28.0) Gecko/20100101 Firefox/28.0"
9 | - "Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20121202 Firefox/17.0 Iceweasel/17.0.1"
10 | - "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1250.0 Iron/22.0.2150.0 Safari/537.4"
11 | - "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1250.0 Iron/22.0.2150.0 Safari/537.4"
12 | - "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/533.1 (KHTML, like Gecko) Maxthon/3.0.8.2 Safari/533.1"
13 | - "Mozilla/5.0 (Windows; U; Windows NT 6.1; rv:2.2) Gecko/20110201"
14 | - "Opera/9.80 (X11; Linux i686; Ubuntu/14.10) Presto/2.12.388 Version/12.16"
15 | - "Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14"
16 | - "Mozilla/5.0 (Windows NT 6.0; rv:2.0) Gecko/20100101 Firefox/4.0 Opera 12.14"
17 | - "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0) Opera 12.14"
18 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A"
19 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2"
20 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.55.3 (KHTML, like Gecko) Version/5.1.3 Safari/534.53.10"
21 | - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; de-at) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1"
22 | - "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; da-dk) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1"
23 | - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
24 | - "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
25 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
26 | - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"
27 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Safari/604.1.38"
28 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"
29 | - "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"
30 | - "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0"
31 | - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063"
32 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Safari/604.1.38"
33 | - "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0"
34 | - "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
35 | - "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
36 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
37 | - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
38 | - "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0"
39 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
40 | - "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
41 | - "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0"
42 | - "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0"
43 | - "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0"
44 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.1.2 Safari/603.3.8"
45 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:55.0) Gecko/20100101 Firefox/55.0"
46 | - "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0"
47 | - "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
48 | - "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0"
49 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:56.0) Gecko/20100101 Firefox/56.0"
50 | - "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0"
51 | - "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0"
52 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"
53 | - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.91 Safari/537.36"
54 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Safari/604.1.38"
55 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
56 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
57 | - "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"
58 | - "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0"
59 | - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.91 Safari/537.36"
60 | - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393"
61 | - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"
62 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/600.5.17 (KHTML, like Gecko) Version/8.0.5 Safari/600.5.17"
63 | - "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0"
64 | - "Mozilla/5.0 (X11; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0"
65 | - "Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko"
66 | - "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
67 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.1.2 Safari/603.3.8"
68 | - "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; Trident/5.0)"
69 | - "Mozilla/5.0 (Windows NT 6.1; rv:56.0) Gecko/20100101 Firefox/56.0"
70 | - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/61.0.3163.79 Chrome/61.0.3163.79 Safari/537.36"
71 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/603.2.4 (KHTML, like Gecko) Version/10.1.1 Safari/603.2.4"
72 | - "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0"
73 | - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36"
74 | - "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; Trident/5.0)"
75 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36"
76 | - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36"
77 | - "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.91 Safari/537.36"
78 | - "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36"
79 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:56.0) Gecko/20100101 Firefox/56.0"
80 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"
81 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.91 Safari/537.36"
82 | - "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0"
83 | - "Mozilla/5.0 (Windows NT 6.1; rv:55.0) Gecko/20100101 Firefox/55.0"
84 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:55.0) Gecko/20100101 Firefox/55.0"
85 | - "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
86 | - "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36"
87 | - "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0"
88 | - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/61.0.3163.100 Chrome/61.0.3163.100 Safari/537.36"
89 | - "Mozilla/5.0 (iPad; CPU OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.0 Mobile/14G60 Safari/602.1"
90 | - "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"
91 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:56.0) Gecko/20100101 Firefox/56.0"
92 | - "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko"
93 | - "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0"
94 | - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"
95 | - "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36"
96 | - "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0"
97 | - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36"
98 | - "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0"
99 | - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36"
100 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"
101 | - "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0"
102 | - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"
103 | - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36 OPR/48.0.2685.39"
104 | - "Mozilla/5.0 (Windows NT 6.1; rv:52.0) Gecko/20100101 Firefox/52.0"
105 | - "Mozilla/5.0 (X11; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0"
106 | - "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:54.0) Gecko/20100101 Firefox/54.0"
107 | - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36 OPR/48.0.2685.35"
108 | - "Mozilla/5.0 (Windows NT 5.1; rv:52.0) Gecko/20100101 Firefox/52.0"
109 | - "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko"
110 | - "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"
111 | - "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36"
112 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
113 | - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36"
114 | - "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0"
115 | - "Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0"
116 | - "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
117 | - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36"
118 | - "Mozilla/5.0 (X11; Linux x86_64; rv:93.0) Gecko/20100101 Firefox/93.0"
119 | - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1 Safari/605.1.15"
120 | - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36 Edg/90.0.818.46"
121 | - "Mozilla/5.0 (X11; CrOS x86_64 13982.82.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.157 Safari/537.36"
--------------------------------------------------------------------------------
/okadminfinder/cache.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # -*- coding: utf-8 -*-
3 |
4 | import os
5 | from functools import wraps
6 |
7 | import diskcache as dc
8 |
9 | # Initialize the cache
10 | if os.name == "nt": # Windows
11 | temp_dir = os.getenv("TEMP")
12 | else: # Unix-like systems
13 | temp_dir = "/tmp"
14 |
15 | # Create the cache in the appropriate temporary directory
16 | cache = dc.Cache(os.path.join(temp_dir, "okadminfinder_cache"))
17 | cache_enabled = True # Default state: cache is enabled
18 |
19 |
20 | def invalidate_all_cache():
21 | """
22 | Invalidate all cache entries
23 | """
24 | cache.clear()
25 |
26 |
27 | def disable_cache():
28 | """
29 | Disable the cache
30 | """
31 | global cache_enabled
32 | cache_enabled = False
33 |
34 |
35 | def is_cache_enabled() -> bool:
36 | """
37 | Check if cache is enabled
38 | """
39 | return cache_enabled
40 |
41 |
42 | def memoize_if_cache_enabled(func):
43 | """
44 | Memoization decorator that respects the cache enabled state
45 | """
46 |
47 | @wraps(func)
48 | def wrapper(*args, **kwargs):
49 | if is_cache_enabled():
50 | # Exclude the 'self' object from the cache key
51 | cache_key = (func.__name__, args[1:], kwargs)
52 | if cache_key in cache:
53 | return cache[cache_key]
54 | result = func(*args, **kwargs)
55 | cache[cache_key] = result
56 | return result
57 | else:
58 | return func(*args, **kwargs)
59 |
60 | return wrapper
61 |
--------------------------------------------------------------------------------
/okadminfinder/credit.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # -*- coding: utf-8 -*-
3 |
4 | from contextlib import contextmanager
5 |
6 | from rich.align import Align
7 | from rich.color import Color
8 | from rich.console import Console
9 | from rich.text import Text
10 |
11 | from okadminfinder.version import __creator__, __maintainer__, __version__
12 |
13 |
14 | class Credit:
15 | @staticmethod
16 | def _apply_gradient(text, start_color, end_color):
17 | """
18 | Apply a gradient to the given text.
19 |
20 | Args:
21 | text (str): The text to style.
22 | start_color (str): Starting color in hex format (e.g., "#ff0000").
23 | end_color (str): Ending color in hex format (e.g., "#0000ff").
24 | """
25 | start = Color.parse(start_color).triplet
26 | end = Color.parse(end_color).triplet
27 | gradient = [
28 | (
29 | int(start[0] + (end[0] - start[0]) * i / len(text)),
30 | int(start[1] + (end[1] - start[1]) * i / len(text)),
31 | int(start[2] + (end[2] - start[2]) * i / len(text)),
32 | )
33 | for i in range(len(text))
34 | ]
35 |
36 | styled_text = Text()
37 | for char, color in zip(text, gradient):
38 | styled_text.append(char, style=f"rgb({color[0]},{color[1]},{color[2]})")
39 | return styled_text
40 |
41 | @contextmanager
42 | def set_credit(self):
43 | try:
44 | console = Console()
45 | credit_text = r"""
46 | ╔──────────────────────────────────────────────────────────────╗
47 | │ ___ _ __ _ _ ___ _ _ │
48 | │ / _ \| |/ /__ _ __| |_ __ (_)_ _ | __(_)_ _ __| |___ _ _ │
49 | │ | (_) | ' _` / _` | ' \| | ' \| _|| | ' \/ _` / -_) '_| │
50 | │ \___/|_|\_\__,_\__,_|_|_|_|_|_||_|_| |_|_||_\__,_\___|_| │
51 | │ │
52 | ╚──────────────────────────────────────────────────────────────╝"""
53 | version_info = f" [bold]:green_heart: version {__version__} created by {__creator__} & recoded by {__maintainer__} :green_heart:[/bold]\n"
54 | gradient_text = self._apply_gradient(credit_text, "#4AC29A", "#BDFFF3")
55 | credit = Align(gradient_text, align="left", vertical="top")
56 | version_credit = Align(version_info, align="left", vertical="top")
57 | console.print(credit)
58 | console.print(version_credit)
59 | yield
60 | finally:
61 | pass
62 |
--------------------------------------------------------------------------------
/okadminfinder/errors_handler.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # -*- coding: utf-8 -*-
3 |
4 | import inspect
5 | import re
6 |
7 | from rich.console import Console
8 | from rich.panel import Panel
9 | from rich.text import Text
10 | from typer import Exit
11 | from typer.models import OptionInfo
12 |
13 | console = Console()
14 |
15 | STYLE_OPTION = "bold cyan"
16 | STYLE_SWITCH = "bold green"
17 | STYLE_ERRORS_PANEL_BORDER = "red"
18 | ERRORS_PANEL_TITLE = "[red]Error[/red]"
19 | ALIGN_ERRORS_PANEL = "left"
20 |
21 |
22 | def detect_options_from_typer(app):
23 | """
24 | Detects all options from the Typer app and returns a dictionary with
25 | options and their corresponding styles (color).
26 |
27 | Args:
28 | app (Typer): The Typer app instance.
29 |
30 | Returns:
31 | dict: A dictionary where keys are option names (with `--` or `-`)
32 | and values are their respective styles (color).
33 | """
34 | options = {}
35 |
36 | for command_info in app.registered_commands:
37 | callback = command_info.callback
38 | sig = inspect.signature(callback)
39 | for param in sig.parameters.values():
40 | option_info = param.default
41 | if isinstance(option_info, OptionInfo):
42 | for opt in option_info.param_decls:
43 | color = STYLE_OPTION if opt.startswith("--") else STYLE_SWITCH
44 | options[opt] = color
45 |
46 | return options
47 |
48 |
49 | def custom_error_handler(app, message: str):
50 | """
51 | Displays a styled error message dynamically, highlighting options declared in the Typer app.
52 |
53 | Args:
54 | app (Typer): The Typer app instance to extract options from.
55 | message (str): The main error message.
56 | """
57 | # Detect options dynamically from Typer
58 | option_styles = detect_options_from_typer(app)
59 |
60 | text = Text(message)
61 |
62 | # Highlight each option dynamically based on the extracted styles
63 | for option, style in option_styles.items():
64 | text.highlight_regex(rf"(? str:
107 | credentials = f"{self.username}:{self.password}"
108 | return base64.b64encode(credentials.encode()).decode()
109 |
110 | def set_timeout(self):
111 | return Timeout(total=self.timeout)
112 |
113 | def retry_strategy(self):
114 | return Retry(
115 | total=self.num_retry,
116 | backoff_factor=1,
117 | status_forcelist=[429, 500, 502, 503, 504],
118 | allowed_methods=["HEAD", "GET", "OPTIONS"],
119 | )
120 |
121 | def create_http_manager(self):
122 | """
123 | Create an HTTP manager (either ProxyManager, SOCKSProxyManager, or PoolManager) based on proxy settings.
124 | :return: An instance of urllib3.ProxyManager, urllib3.contrib.socks.SOCKSProxyManager, or urllib3.PoolManager.
125 | """
126 | if self.proxy_url:
127 | proxy_type, proxy_ip_port = self.parse_proxy_url(self.proxy_url)
128 | if proxy_type in ["socks4a", "socks5h"]:
129 | return SOCKSProxyManager(
130 | proxy_url=self.proxy_url,
131 | headers=self.headers,
132 | timeout=self.set_timeout(),
133 | num_pools=self.num_pools,
134 | retries=self.retry_strategy(),
135 | maxsize=self.threads,
136 | block=True,
137 | )
138 | elif proxy_type in ["socks4", "socks5"]:
139 | proxy_type = self.transform_socks_type(proxy_type)
140 | transformed_proxy_url = f"{proxy_type}://{proxy_ip_port}"
141 | return SOCKSProxyManager(
142 | proxy_url=transformed_proxy_url,
143 | headers=self.headers,
144 | timeout=self.set_timeout(),
145 | num_pools=self.num_pools,
146 | retries=self.retry_strategy(),
147 | maxsize=self.threads,
148 | block=True,
149 | )
150 | elif proxy_type in ["http", "https"]:
151 | return ProxyManager(
152 | proxy_url=self.proxy_url,
153 | proxy_headers=self.get_proxy_headers(),
154 | headers=self.headers,
155 | timeout=self.set_timeout(),
156 | num_pools=self.num_pools,
157 | retries=self.retry_strategy(),
158 | maxsize=self.threads,
159 | block=True,
160 | )
161 | else:
162 | raise ProxyTypeError(proxy_type)
163 | else:
164 | return PoolManager(
165 | headers=self.headers,
166 | timeout=self.set_timeout(),
167 | num_pools=self.num_pools,
168 | retries=self.retry_strategy(),
169 | maxsize=self.threads,
170 | block=True,
171 | )
172 |
173 | @staticmethod
174 | def parse_proxy_url(proxy_url: str):
175 | """
176 | Parse the proxy URL to extract the scheme and IP:port.
177 | :param proxy_url: The proxy URL.
178 | :return: A tuple containing the proxy type and IP:port.
179 | """
180 | parsed_url = urlparse(proxy_url)
181 | if not parsed_url.scheme or not parsed_url.netloc:
182 | raise ProxyURLFormatError(proxy_url)
183 | return parsed_url.scheme, parsed_url.netloc
184 |
185 | @staticmethod
186 | def transform_socks_type(proxy_type: str):
187 | """
188 | Transform socks4 to socks4a and socks5 to socks5h.
189 | :param proxy_type: The proxy type.
190 | :return: The transformed proxy type.
191 | """
192 | if proxy_type == "socks4":
193 | return "socks4a"
194 | elif proxy_type == "socks5":
195 | return "socks5h"
196 | return proxy_type
197 |
198 | @staticmethod
199 | def get_proxy_headers():
200 | """
201 | Get the proxy headers for HTTP requests.
202 | :return: A dictionary of proxy headers.
203 | """
204 | return {"Proxy-Authorization": "Basic base64encodedcredentials"}
205 |
206 | @staticmethod
207 | def parse_status_codes(status_codes_str: str) -> set:
208 | valid_status_codes = set()
209 | for part in status_codes_str.split(","):
210 | if "-" in part:
211 | start, end = map(int, part.split("-"))
212 | valid_status_codes.update(range(start, end + 1))
213 | else:
214 | valid_status_codes.add(int(part))
215 | return valid_status_codes
216 |
217 | def request(self, method: str, url: str, **kwargs):
218 | """
219 | Make an HTTP request using the appropriate manager.
220 | :param method: The HTTP method (e.g., 'GET', 'POST').
221 | :param url: The URL to request.
222 | :param kwargs: Additional keyword arguments for the request.
223 | :return: The HTTP response.
224 | """
225 | return self.http_manager.request(method, url, **kwargs)
226 |
227 | @memoize_if_cache_enabled
228 | def check_url(self, url: str) -> bool:
229 | """
230 | Check the availability of a URL.
231 | :param url: The URL to check.
232 | :return: True if the URL is available, False otherwise.
233 | """
234 | try:
235 | if self.delay > 0:
236 | sleep(self.delay)
237 | resp = self.request("GET", url)
238 | # print(f"[{resp.status}] {url}")
239 | if resp.status in self.status_codes:
240 | return True
241 | except (
242 | ConnectTimeoutError,
243 | MaxRetryError,
244 | HTTPError,
245 | ProxyError,
246 | ):
247 | return False
248 |
249 | def check_urls(self, paths: list) -> list:
250 | """
251 | Check the availability of a list of URLs with multithreading and a progress bar.
252 | :param paths: The list of URLs to check.
253 | :return: A list of available URLs.
254 | """
255 |
256 | # Initialize the progress bar
257 | progress = Progress()
258 | task = progress.add_task(" [cyan]Checking URLs...", total=len(paths))
259 | try:
260 | with Live(progress, auto_refresh=True, refresh_per_second=10) as live:
261 | # Submit all tasks to the executor
262 | futures = {
263 | self.executor.submit(self.check_url, path): path for path in paths
264 | }
265 |
266 | # Process tasks as they are completed
267 | for future in as_completed(futures):
268 | path = futures[future]
269 | if future.result(): # Check if the URL is valid
270 | self.available_urls.add(path)
271 |
272 | # Update the progress bar
273 | progress.update(task, advance=1)
274 |
275 | # Dynamically update the live display
276 | if self.available_urls:
277 | found_urls_display = "\n".join(self.available_urls)
278 | live.update(
279 | Group(
280 | progress,
281 | Panel(
282 | found_urls_display,
283 | box=ROUNDED,
284 | title="[bold chartreuse3]Found URLs[/bold chartreuse3]",
285 | subtitle="[dark_sea_green4]Thank you for using okadminfinder![/dark_sea_green4]",
286 | expand=False,
287 | highlight=True,
288 | border_style="dark_green",
289 | padding=(0, 10),
290 | ),
291 | )
292 | )
293 | if self.output_path:
294 | self.save_results(list(self.available_urls), self.output_path)
295 | except KeyboardInterrupt:
296 | # Handle user interruption gracefully
297 | for future in futures:
298 | future.cancel()
299 | self.executor.shutdown(wait=False)
300 | progress.stop()
301 | print("\n:boom: [bold red]Process interrupted by user[/bold red] :boom:")
302 |
303 | return list(self.available_urls)
304 |
305 | @staticmethod
306 | def save_results(urls: list, output_path: str):
307 | """
308 | Save the list of URLs to a file.
309 | :param urls: The list of URLs to save.
310 | :param output_path: The path to the output file.
311 | """
312 | with open(output_path, "w") as f:
313 | for url in urls:
314 | f.write(url + "\n")
315 | print(
316 | f":boom: [bold yellow]Results written to {output_path}[/bold yellow] :boom:"
317 | )
318 |
--------------------------------------------------------------------------------
/okadminfinder/process.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # -*- coding: utf-8 -*-
3 |
4 | from okadminfinder._utils import URLCreator
5 | from okadminfinder.exceptions import (
6 | DNSWithoutWordlistError,
7 | FilesWithoutFuzzError,
8 | FuzzAndDNSConflictError,
9 | ProxyTorError,
10 | URLFormatError,
11 | )
12 | from okadminfinder.network import NetworkManager
13 |
14 |
15 | class Process:
16 | def __init__(
17 | self,
18 | random_agent: bool,
19 | cookie: str,
20 | username: str,
21 | password: str,
22 | proxy_url: str,
23 | use_tor: bool,
24 | wordlist: str,
25 | dns: bool,
26 | fuzz: bool,
27 | files: str,
28 | status_codes: str,
29 | output_path: str,
30 | clear_cache: bool,
31 | timeout: int,
32 | num_pools: int,
33 | num_threads: int,
34 | num_retry: int,
35 | delay: float,
36 | ):
37 | """
38 | Initialize the Process class with optional proxy settings.
39 | :param proxy_url: The proxy URL.
40 | :param proxy_type: The type of proxy (e.g., 'http').
41 | :param num_pools: The number of connection pools.
42 | """
43 | if proxy_url and use_tor:
44 | raise ProxyTorError()
45 |
46 | if use_tor:
47 | proxy_url = "socks5h://127.0.0.1:9050"
48 |
49 | if dns and not wordlist:
50 | raise DNSWithoutWordlistError()
51 |
52 | if fuzz and dns:
53 | raise FuzzAndDNSConflictError()
54 |
55 | if files and not fuzz:
56 | raise FilesWithoutFuzzError()
57 |
58 | self.url_creator = URLCreator(
59 | wordlist=wordlist, dns=dns, fuzz=fuzz, files=files
60 | )
61 | self.network_manager = NetworkManager(
62 | proxy_url,
63 | random_agent,
64 | cookie,
65 | username,
66 | password,
67 | status_codes,
68 | output_path,
69 | clear_cache,
70 | timeout,
71 | num_pools,
72 | num_threads,
73 | num_retry,
74 | delay,
75 | )
76 |
77 | @staticmethod
78 | def read_file(file_path: str) -> list:
79 | """
80 | Read a file containing a list of URLs.
81 | :param file_path: The path to the file containing URLs.
82 | :return: A list of URLs.
83 | """
84 | try:
85 | with open(file_path, "r") as file:
86 | urls = [line.strip() for line in file if line.strip()]
87 | return urls
88 | except FileNotFoundError:
89 | raise URLFormatError(file_path)
90 | except Exception as e:
91 | raise e
92 |
93 | def process_url(self, links: list) -> list:
94 | """
95 | Check the availability of a list of URLs.
96 | :param links: The list of URLs to check.
97 | :return: A list of available URLs.
98 | """
99 | try:
100 | return self.network_manager.check_urls(links)
101 | except KeyboardInterrupt:
102 | raise
103 |
104 | def process_urls(self, url: str, urls_file: str) -> None:
105 | """
106 | Process a single URL or a file containing a list of URLs.
107 | :param url: The single URL.
108 | :param urls_file: The path to the file containing URLs.
109 | :return: A list of available URLs.
110 | """
111 | links = []
112 | if urls_file:
113 | urls = self.read_file(urls_file)
114 | else:
115 | urls = [url]
116 |
117 | available_urls = []
118 | for base_url in urls:
119 | links.extend(self.url_creator.create_urls(base_url))
120 |
121 | return available_urls.extend(self.process_url(links))
122 |
--------------------------------------------------------------------------------
/okadminfinder/version.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # -*- coding: utf-8 -*-
3 |
4 | __version__ = "2.0.0"
5 | __creator__ = "O.Koleda"
6 | __maintainer__ = "mIcHyAmRaNe"
7 |
--------------------------------------------------------------------------------
/pyproject.toml:
--------------------------------------------------------------------------------
1 | [build-system]
2 | requires = ["setuptools>=42", "wheel"]
3 | build-backend = "setuptools.build_meta"
4 |
5 | [project]
6 | name = "okadminfinder"
7 | version = "2.0.0"
8 | description = "OKadminFinder: open-source tool designed to help administrators and penetration testers discover admin panels, directories, and subdomains of a website."
9 | readme = "README.md"
10 | requires-python = ">=3.7"
11 | license = {text = "MIT"}
12 | keywords = ["admin panel", "admin", "panel", "finder", "directory", "fuzz", "subdomain", "security", "pentest", "okadminfinder", "web"]
13 | authors = [
14 | {name = "mIcHyAmRaNe", email = "6m63er17c@mozmail.com"}
15 | ]
16 | maintainers = [
17 | {name = "mIcHyAmRaNe", email = "6m63er17c@mozmail.com"}
18 | ]
19 | classifiers = [
20 | "Programming Language :: Python :: 3",
21 | "Programming Language :: Python :: 3.7",
22 | "Programming Language :: Python :: 3.8",
23 | "Programming Language :: Python :: 3.9",
24 | "Programming Language :: Python :: 3.10",
25 | "Programming Language :: Python :: 3.11",
26 | "Programming Language :: Python :: 3.12",
27 | "Programming Language :: Python :: 3.13",
28 | "License :: OSI Approved :: MIT License",
29 | "Operating System :: OS Independent",
30 | ]
31 | dependencies = [
32 | "typer>=0.15.1",
33 | "rich>=13.9.4 ",
34 | "urllib3[socks]>=2.3.0",
35 | "pyyaml>=6.0.2",
36 | "diskcache>=5.6.3",
37 | ]
38 |
39 | [project.urls]
40 | "Homepage" = "https://github.com/mIcHyAmRaNe/okadminfinder"
41 | "Repository" = "https://github.com/mIcHyAmRaNe/okadminfinder"
42 | "Bug Tracker" = "https://github.com/mIcHyAmRaNe/okadminfinder/issues"
43 |
44 | [project.scripts]
45 | okadminfinder = "okadminfinder.app:run"
46 |
47 | [project.optional-dependencies]
48 | dev = [
49 | "pytest>=8.3.4",
50 | "ruff>=0.8.5",
51 | ]
52 |
53 | [tool.setuptools.package-data]
54 | "okadminfinder.assets" = ["*.yml"]
55 |
56 | [tool.pytest.ini_options]
57 | testpaths = [
58 | "tests",
59 | ]
--------------------------------------------------------------------------------
/tests/test_app.py:
--------------------------------------------------------------------------------
1 | import unittest
2 | from unittest.mock import patch
3 |
4 | from okadminfinder.app import main, run
5 |
6 |
7 | class TestApp(unittest.TestCase):
8 | @patch("okadminfinder.app.app")
9 | def test_run(self, mock_app):
10 | run()
11 | mock_app.assert_called_once()
12 |
13 | @patch("okadminfinder.app.Process")
14 | @patch("okadminfinder.app.Typer")
15 | def test_main(self, mock_typer, mock_process):
16 | # Mock the Typer options to avoid actual command-line parsing
17 | mock_typer.return_value.parse_args.return_value = {
18 | "url": "http://example.com",
19 | "random_agent": False,
20 | "proxy": None,
21 | "tor": False,
22 | "wordlist": None,
23 | "dns": False,
24 | "fuzz": False,
25 | "output": None,
26 | "clear_cache": False,
27 | "timeout": 10,
28 | "num_pools": 50,
29 | "threads": 16,
30 | "retry": 0,
31 | "debug": False,
32 | }
33 | main()
34 | mock_process.assert_called_once()
35 |
36 |
37 | if __name__ == "__main__":
38 | unittest.main()
39 |
--------------------------------------------------------------------------------
/tests/test_cache.py:
--------------------------------------------------------------------------------
1 | import unittest
2 |
3 | from okadminfinder import (
4 | disable_cache,
5 | invalidate_all_cache,
6 | is_cache_enabled,
7 | memoize_if_cache_enabled,
8 | )
9 |
10 |
11 | class TestCache(unittest.TestCase):
12 | def test_invalidate_all_cache(self):
13 | invalidate_all_cache()
14 | self.assertTrue(True) # Just to ensure the function runs without errors
15 |
16 | def test_disable_cache(self):
17 | disable_cache()
18 | self.assertFalse(is_cache_enabled())
19 |
20 | def test_memoize_if_cache_enabled(self):
21 | @memoize_if_cache_enabled
22 | def dummy_function(x):
23 | return x * 2
24 |
25 | self.assertEqual(dummy_function(5), 10)
26 |
27 |
28 | if __name__ == "__main__":
29 | unittest.main()
30 |
--------------------------------------------------------------------------------
/tests/test_credit.py:
--------------------------------------------------------------------------------
1 | import unittest
2 |
3 | from okadminfinder.credit import Credit
4 |
5 |
6 | class TestCredit(unittest.TestCase):
7 | def test_set_credit(self):
8 | credit = Credit()
9 | with credit.set_credit():
10 | self.assertTrue(
11 | True
12 | ) # Just to ensure the context manager runs without errors
13 |
14 |
15 | if __name__ == "__main__":
16 | unittest.main()
17 |
--------------------------------------------------------------------------------
/tests/test_exceptions.py:
--------------------------------------------------------------------------------
1 | import unittest
2 |
3 | from okadminfinder.exceptions import (
4 | AppError,
5 | DNSWithoutWordlistError,
6 | FuzzAndDNSConflictError,
7 | ProxyTorError,
8 | ProxyTypeError,
9 | ProxyURLFormatError,
10 | RequestError,
11 | URLFormatError,
12 | UserAgentFileError,
13 | )
14 |
15 |
16 | class TestExceptions(unittest.TestCase):
17 | def test_app_error(self):
18 | with self.assertRaises(AppError):
19 | raise AppError("Test error")
20 |
21 | def test_user_agent_file_error(self):
22 | with self.assertRaises(UserAgentFileError):
23 | raise UserAgentFileError("test_file")
24 |
25 | def test_proxy_tor_error(self):
26 | with self.assertRaises(ProxyTorError):
27 | raise ProxyTorError()
28 |
29 | def test_url_format_error(self):
30 | with self.assertRaises(URLFormatError):
31 | raise URLFormatError("http://invalid_url")
32 |
33 | def test_proxy_url_format_error(self):
34 | with self.assertRaises(ProxyURLFormatError):
35 | raise ProxyURLFormatError("invalid_proxy")
36 |
37 | def test_proxy_type_error(self):
38 | with self.assertRaises(ProxyTypeError):
39 | raise ProxyTypeError("invalid_type")
40 |
41 | def test_request_error(self):
42 | with self.assertRaises(RequestError):
43 | raise RequestError("Request failed")
44 |
45 | def test_dns_without_wordlist_error(self):
46 | with self.assertRaises(DNSWithoutWordlistError):
47 | raise DNSWithoutWordlistError()
48 |
49 | def test_fuzz_and_dns_conflict_error(self):
50 | with self.assertRaises(FuzzAndDNSConflictError):
51 | raise FuzzAndDNSConflictError()
52 |
53 |
54 | if __name__ == "__main__":
55 | unittest.main()
56 |
--------------------------------------------------------------------------------
/tests/test_network.py:
--------------------------------------------------------------------------------
1 | import unittest
2 | from unittest.mock import patch
3 |
4 | from okadminfinder.network import NetworkManager
5 |
6 |
7 | class TestNetworkManager(unittest.TestCase):
8 | @patch("okadminfinder.network.PoolManager")
9 | def test_create_http_manager(self, mock_pool_manager):
10 | network_manager = NetworkManager(
11 | proxy_url=None,
12 | random_agent=False,
13 | wordlist=None,
14 | dns=False,
15 | fuzz=False,
16 | output_path=None,
17 | clear_cache=False,
18 | timeout=10,
19 | num_pools=50,
20 | num_theads=16,
21 | num_retry=0,
22 | )
23 | self.assertIsNotNone(network_manager.http_manager)
24 |
25 | @patch("okadminfinder.network.NetworkManager.request")
26 | def test_check_url(self, mock_request):
27 | network_manager = NetworkManager(
28 | proxy_url=None,
29 | random_agent=False,
30 | wordlist=None,
31 | dns=False,
32 | fuzz=False,
33 | output_path=None,
34 | clear_cache=False,
35 | timeout=10,
36 | num_pools=50,
37 | num_theads=16,
38 | num_retry=0,
39 | )
40 | mock_request.return_value.status = 200
41 | self.assertTrue(network_manager.check_url("http://example.com"))
42 |
43 |
44 | if __name__ == "__main__":
45 | unittest.main()
46 |
--------------------------------------------------------------------------------
/tests/test_process.py:
--------------------------------------------------------------------------------
1 | import unittest
2 | from unittest.mock import patch
3 |
4 | from okadminfinder.process import Process
5 |
6 |
7 | class TestProcess(unittest.TestCase):
8 | @patch("okadminfinder.process.NetworkManager")
9 | def test_process_urls(self, mock_network_manager):
10 | process = Process(
11 | random_agent=False,
12 | proxy_url=None,
13 | use_tor=False,
14 | wordlist=None,
15 | dns=False,
16 | fuzz=False,
17 | output_path=None,
18 | clear_cache=False,
19 | timeout=10,
20 | num_pools=50,
21 | num_theads=16,
22 | num_retry=0,
23 | )
24 | process.process_urls("http://example.com")
25 | mock_network_manager.assert_called_once()
26 |
27 |
28 | if __name__ == "__main__":
29 | unittest.main()
30 |
--------------------------------------------------------------------------------
/tests/test_utils.py:
--------------------------------------------------------------------------------
1 | import unittest
2 |
3 | from okadminfinder._utils import URLCreator, UserAgent
4 |
5 |
6 | class TestUtils(unittest.TestCase):
7 | def test_user_agent(self):
8 | user_agent = UserAgent()
9 | self.assertIsNotNone(user_agent.get_user_agent())
10 |
11 | def test_url_creator(self):
12 | url_creator = URLCreator(wordlist=None, dns=False, fuzz=False)
13 | self.assertIsNotNone(url_creator.create_urls("http://example.com"))
14 |
15 |
16 | if __name__ == "__main__":
17 | unittest.main()
18 |
--------------------------------------------------------------------------------
/tests/test_version.py:
--------------------------------------------------------------------------------
1 | import unittest
2 |
3 | from okadminfinder import __creator__, __maintainer__, __version__
4 |
5 |
6 | class TestVersion(unittest.TestCase):
7 | def test_version(self):
8 | self.assertEqual(__version__, "2.0.0")
9 | self.assertEqual(__creator__, "O.Koleda")
10 | self.assertEqual(__maintainer__, "mIcHyAmRaNe")
11 |
12 |
13 | if __name__ == "__main__":
14 | unittest.main()
15 |
--------------------------------------------------------------------------------