Releases: amnottdevv/AtDork
AtDork v1.3.3 source code
AtDork v1.3.3 – Enhanced Vulnerability Filter & Production Stability
We are pleased to announce AtDork v1.3.3, a refinement release focused on improving the vulnerability filtering system, fixing critical batch processing bugs, and enhancing overall production stability. This release makes AtDork's reconnaissance capabilities more precise and reliable than ever.
What's New?
🛡️ Enhanced Vulnerability Filter (filter_vuln.py)
The vulnerability filter has been completely re-architected for better accuracy and user experience:
- Dynamic Wordlist Detection – Automatically detects filter type (
-linkvs-path) based on filename suffix. - Smart Error Messages – When a wordlist file is not found, AtDork now provides helpful typo suggestions (e.g., "Did you mean
--filter-vuln wordpress-link?"). - Cache System – Compiled regex patterns are cached by absolute file path for performance.
- Returns Filter Type –
filter_vulnerable()now returns(vulnerable, safe, filter_type)for downstream processing.
Example:
# Basic filter
python atdork.py -q "inurl:wp-content" --filter-vuln wordpress
# Link-only filter (only matches URLs containing WordPress paths)
python atdork.py -q "site:example.com" --filter-vuln wordpress-link🐛 Critical Bug Fixes
- Fixed
list index out of rangeerror when using--resilientin batch mode. - Fixed
got multiple values for keyword argument 'proxy_manager'conflict betweenscanner_kwargsandResilienceHandler. - Fixed
too many values to unpackerror caused byfilter_vulnerable()returning 3 values instead of 2. - Fixed
--batch-separatornot accepting empty values, ensuring smoother batch processing.
📊 Project Statistics (v1.3.3)
| Metric | Value |
|---|---|
| Total lines | 9,383 |
| Python code | 2,887 lines across 27 modules |
| Wordlist data | 5,519 lines (signatures, templates, dorks) |
| Test coverage | 114 unit tests |
| CLI flags | 47 options |
Upgrading from v1.3.2
- Pull the latest code from the repository.
- Install dependencies:
pip install -r requirements.txt(no new packages). - All existing commands, configuration files, and wordlists remain fully compatible.
No breaking changes to the CLI or API.
Full Changelog
- Rewrote
core/filter_vuln.pywith dynamic wordlist detection, cache, and typo suggestions. - Updated
atdork.pyto handle 3-value return fromfilter_vulnerable(). - Fixed batch runner errors with
ResilienceHandlerandproxy_manager. - Updated
pyproject.tomlto version 1.3.3. - Added
requirements-dev.txtfor development dependencies. - Updated documentation and examples.
- All 114 unit tests pass successfully.
Recognition
AtDork now stands alongside established OSINT tools like theHarvester, GoBuster, and GoDork – with superior proxy management, multi-threaded batch processing, and intelligent output filtering. A huge thank you to all users and contributors who have helped shape this tool.
Full documentation: GitHub Wiki
Report issues: GitHub Issues
Full Changelog: 1.3.2...1.3.3
If you find AtDork helpful, please consider giving it a ⭐ on GitHub!
developed by : alzzdev
github : @amnottdevv
Atdork v1.3.2 source code
AtDork v1.3.2 – Template Dorks & Enhanced Batch Resilience
We are excited to announce AtDork v1.3.2, a feature-packed release that introduces a powerful Template Dork System, significantly improved batch processing with integrated resilience, and a new verbose output mode.
This version makes large-scale OSINT campaigns faster, smarter, and easier to automate.
What’s New?
🧩 Template Dork System
AtDork now ships with a curated collection of YAML‑based dork templates in the wordlists/templates/ folder.
Templates can be combined, previewed, and customised on the fly.
| Flag | Description |
|---|---|
--template <name> |
Load one or more templates (comma‑separated) |
--target <domain> |
Substitute {target} placeholder in targeted dorks |
--select <n> |
Run only specific dorks from a template (e.g. --select 1,3,5) |
--list-templates |
Show all available templates with descriptions |
--preview |
Preview the dorks a template will generate without executing them |
--template-path <dir> |
Use a custom folder for your own templates |
Examples:
# Run all generic SQLi dorks
python atdork.py --template sqli -r 20
# Run WordPress dorks against a specific target
python atdork.py --template wordpress --target example.com -r 15
# Combine multiple templates with a custom query
python atdork.py --template sqli,xss,exposed_config -q "site:gov filetype:pdf"
# Preview what a template will do
python atdork.py --template login_panels --preview
# Run only the first and third dork from a template
python atdork.py --template sqli --select 1,3Templates separate targeted dorks (those needing --target) from generic ones, so you never accidentally run a dork that requires a domain without providing one.
📢 Verbose Output in Batch Mode (-v)
Batch mode no longer hides your results!
Use -v or --verbose to print every result directly to the terminal as each query completes.
python atdork.py --batch-file dorks.txt -v⚙️ Enhanced Batch Runner
The batch runner (run_batch) has been rewritten to fully integrate with ResilienceHandler and RateLimiter.
- No more
list index out of rangeerrors when using--resilient. - Smart proxy rotation and circuit breaker work seamlessly in both sequential and parallel modes.
- Concurrency support is now built directly into the batch runner – no separate multi‑thread module needed.
🛠️ Additional Improvements
- Template dork files are loaded from
wordlists/templates/by default, with fallback error messages if a template is not found. - Rate limiter recommendations are now displayed after batch completion, suggesting optimal delays per backend.
- Internal code clean‑up:
multi_thread_runner.pyis no longer required (its functionality is integrated intobatch_runner.py). - All existing flags and workflows remain fully backward‑compatible.
Full Changelog
- Added Template Dork System with 6 built‑in templates (sqli, xss, wordpress, exposed_config, login_panels, directory_listing)
- New CLI flags:
--template,--target,--select,--list-templates,--template-path,--preview - Added
-v/--verboseflag for batch result display - Rewrote
batch_runner.pyto natively supportResilienceHandler,RateLimiter, and concurrency - Fixed
list index out of rangeerror when using--resilientin batch mode - Removed deprecated
multi_thread_runner.py - Updated
main.pyto support multiple comma‑separated templates - Updated documentation and examples
- All unit tests (114) pass successfully
Upgrading from v1.3.1
- Pull the latest code from the repository.
- Install dependencies:
pip install -r requirements.txt(no new packages). - (Optional) Explore the built‑in templates with
python atdork.py --list-templates.
All your existing commands, configuration files, and proxy lists will continue to work without any changes.
Full documentation: GitHub Wiki
Report issues: GitHub Issues
Full Changelog: 1.3.1...1.3.2
If you find AtDork helpful, please consider giving it a ⭐ on GitHub!
atdork v1.3.1 (unstable)
AtDork v1.3.1 – Granular Validation & Stability Fixes
We are pleased to announce AtDork v1.3.1, a refinement release that brings granular control over output validation, improved error resilience, and full backward compatibility with v1.3.
This version does not introduce breaking changes. All existing commands, scripts, and configuration files continue to work as before.
What's New?
Fine‑Grained Validation Flags
AtDork now lets you control exactly what gets filtered from search results. Four new flags replace the old on/off switches:
| Flag | Description | Default |
|---|---|---|
--validate-url |
URL validation mode: only, path, params, all, or false |
all |
--validate-title |
Minimum title length (integer) or false to disable |
5 |
--validate-desc |
Minimum description/snippet length (integer) or false to disable |
10 |
--validate-spam |
Enable/disable spam pattern detection (true/false) |
true |
Examples:
# Only validate domain (ignore path/params)
python atdork.py -q "test" --validate-url only
# Disable title filtering, keep all descriptions
python atdork.py -q "test" --validate-title false --validate-desc false
# Strict spam filtering without any length checks
python atdork.py -q "test" --validate-spam true --validate-title false --validate-desc falseLegacy Flags Still Work
The original --no-validate and --strict-filter flags are fully preserved for backward compatibility:
--no-validatestill disables all filtering.--strict-filterstill enables tight defaults (title≥5, desc≥10, spam on, URL all).
Robust Validator (lib/validator.py)
The validation engine has been rewritten with graceful fallbacks:
- Invalid parameters are silently corrected to safe defaults.
- Malformed result dictionaries no longer crash the filter.
- Every public function handles
Noneand unexpected types without raising exceptions.
Changes from v1.3
| Area | v1.3 | v1.3.1 |
|---|---|---|
| URL validation | Always all or disabled |
Modes: only, path, params, all, false |
| Title length control | Fixed at 5 | Configurable via --validate-title |
| Description length control | Fixed at 10 | Configurable via --validate-desc |
| Spam filtering | Always on (unless --no-validate) |
Togglable via --validate-spam |
| Validator error handling | Potential crashes on bad input | Graceful fallbacks throughout |
Upgrading from v1.3
- Pull the latest code.
- Update dependencies:
pip install -r requirements.txt(no new packages were added). - All v1.3 commands remain identical. The new granular flags are optional — they only activate when explicitly used.
Full Changelog
- Added
--validate-url,--validate-title,--validate-desc,--validate-spamflags. - Rewrote
lib/validator.pywith robust error handling and fallback logic. - Updated
main.pyto support both legacy and granular validation flags. - Updated
tests/test_validator.pyto match the new API (all 106 tests pass). - Version bumped to
1.3.1.
Full documentation: GitHub Wiki
Report issues: GitHub Issues
Full Changelog: 1.3...1.3.1
If you find this release helpful, consider leaving a ⭐ on the repository.
AtDork v1.3 source code zip
AtDork v1.3 – Database, Logging, Proxy Fix & More
We are happy to announce AtDork v1.3, a stability, observability, and data‑management release.
This version introduces persistent SQLite storage, professional logging, important proxy fixes, and a significantly expanded test suite.
What’s New?
🗄️ SQLite Database (core/database.py)
- Persistent storage – All queries and results are automatically saved to
atdork.db. - Resume support (
--resume) – Continue a batch that was interrupted, picking up from pending/failed queries. - History (
--history) – List all previously run queries with their status. - Deduplication – Duplicate URLs are automatically ignored across the entire database. Disable with
--no-dedup. - Export (
--export-db) – Dump the entire database to JSON or CSV at any time. - Thread‑safe with WAL journal mode and foreign keys.
📝 Professional Logging (core/logger.py)
- Rotating file logs – Output to
atdork.logwith automatic rotation (1 MB per file, 3 backups). - Console + file dual output – Debug details go to the file while the console stays clean.
- Configurable via
--log-file– Set a custom log path. - All core modules now use structured logging (timestamp, level, module name).
🔧 Proxy Manager Fix
- Authentication support – The proxy validation regex now accepts the
user:pass@host:portformat that many premium proxy providers use. - Format validation remains strict – only well‑formed proxy URLs are accepted.
- No feature loss – All existing functionality (rotation, cooldown, strict mode, auto‑removal, statistics) is preserved.
🧪 Extended Test Suite
- Added
tests/test_database.py(9 test cases) – add/update queries, result insertion, deduplication, export. - Added
tests/test_logger.py(4 test cases) – console/file logging, debug level filtering. - Fixed
test_load_configandtest_loggerto pass cleanly in CI. - Total test count: 114 (up from 103 in v1.2).
🔄 CI/CD Pipeline
.github/workflows/ci.ymlnow runs:- Unit tests on Python 3.9, 3.10, 3.11, 3.12 (parallel matrix).
- Linting with flake8 (E9, F63, F7, F82).
- Security scan with Bandit.
- Dependency vulnerability check with Safety.
- All checks must pass on every push and pull request to
master.
🔍 Other Improvements
--filter-vulnflag to filter results by vulnerability signatures (e.g.,--filter-vuln wordpressuses wordlists fromwordlists/).requirements.txtnow includespyyaml>=6.0(required for YAML config support).requirements-dev.txtadded for contributors (pytest, flake8, bandit, safety).- Wiki documentation updated: Multi‑Threading Support, Proxy Configuration, Simple Usage, Command Reference, Examples & Use Cases, Release Notes.
Upgrading from v1.2
- Pull the latest code.
- Install updated dependencies:
pip install -r requirements.txt. - Existing
atdork.yamlconfiguration files remain fully compatible.
No breaking changes to the CLI or API.
Full documentation: GitHub Wiki
Report issues: GitHub Issues
Enjoy!
release source code AtDork v1.2
AtDork v1.2 – Testing Suite & Production Hardening
We are pleased to announce AtDork v1.2, a stability‑focused release that introduces a comprehensive automated test suite.
With this update, AtDork moves from a feature‑rich tool to a semi‑production‑grade OSINT utility, ready for integration into continuous delivery pipelines and long‑running engagements.
What’s new?
Automated Unit Tests
A full suite of pytest‑based tests has been added under the tests/ directory.
All tests use mocking to avoid real network calls and can be executed offline in seconds.
| Test file | Coverage |
|---|---|
test_scanner.py |
Search logic, retries, fallback backends, proxy rotation, result validation |
test_proxy_manager.py |
Proxy format validation, rotation, cooldown, auto‑removal, statistics, strict mode |
test_validator.py |
URL validation, spam detection, strict filtering, filter statistics |
test_batch_runner.py |
File reading, query parsing, sequential batch execution with failure handling |
test_config.py |
YAML configuration loading, environment variable overrides, type conversions |
test_multi_thread_runner.py |
Parallel execution, fallback to sequential on consecutive failures |
test_storage.py |
File output in TXT, JSON, and CSV formats |
All tests pass cleanly without external dependencies.
How to run the tests
cd AtDork
pip install pytest
pytest tests/ -vWhy this matters
- Regression protection – refactoring and new features can be developed with confidence.
- CI/CD ready – integrate
pytestinto your GitHub Actions or GitLab pipelines. - Safe for production – core logic is verified, reducing the risk of unexpected failures during audits or reconnaissance campaigns.
Full changelog
- Added
tests/directory with 7 test modules (60+ individual test cases). - All core and lib modules are covered.
- No changes to the public API – your existing commands and configuration files remain fully compatible.
- Minor documentation updates to reflect the testing capability.
We encourage security researchers and developers to run the test suite before deploying AtDork in critical environments.
Feedback and contributions are always welcome.
GitHub: github.com/amnottdevv/atdork
Atdork v1.1 source code zip
Atdork v1.1
A lightweight DuckDuckGo‑based OSINT tool for advanced search queries (dorks).
Run single searches or batch campaigns from the command line – fast, anonymous, and spam‑free.
What's New in v1.1
- Multi‑threaded batch processing – parallel queries with automatic fallback to sequential mode
- Output validator – automatically remove spam, invalid URLs, and low‑quality results
- Enhanced proxy manager – proxy validation, strict mode, auto‑removal, and usage statistics
- User‑Agent rotation – 15+ modern User‑Agent strings rotated on every request
- Cleaner codebase – modular design with
core/andlib/for easy maintenance
Installation
git clone https://github.com/amnottdevv/atdork.git
cd atdork
pip install -r requirements.txtQuick Start
Interactive mode
python main.py --interactiveSingle search
python main.py -q "site:gov filetype:pdf" -r 15 -o results.jsonBatch from file
python main.py --batch-file dorks.txt --format csv -o out.csvMulti‑threaded batch (5 threads)
python main.py --batch-file dorks.txt --concurrency 5 --output-dir resultsAnonymous search with Tor + strict proxy
# start Tor first, then:
python main.py -q "sensitive data" --tor --strict --delay 1.5Basic Arguments
| Flag | Purpose |
|---|---|
-q |
Dork query |
-r |
Max results (1‑100, default 20) |
-o |
Save output to file |
--batch-file |
File with one query per line |
--concurrency |
Number of parallel threads (default 1) |
--tor |
Use Tor SOCKS5 proxy |
--no-validate |
Disable spam filtering |
See python main.py --help for the complete list.
Disclaimer
Atdork is for legal, authorised testing only. The developer is not responsible for any misuse.
Full documentation: GitHub Wiki