388 Commits

Author SHA1 Message Date
Andrew Horton d279d93042 Update version.rb 2026-04-03 01:51:52 +11:00
Andrew Horton fd7a914972 performance improvements!!! 2025-10-20 02:12:11 +11:00
Andrew Horton f301c02e22 fixed issues with proxies and HTTPS 2025-10-18 17:31:52 +11:00
Andrew Horton 4a00e6bf88 refactored output messages to use notice, warning, debug, etc. 2025-10-18 17:31:04 +11:00
Andrew Horton 11e06b958c Commit Summary
Add cookie jar persistence and improve cookie handling
Key Changes:

Cookie jar file persistence: --cookie-jar now saves cookies to file and loads them on startup, maintaining cookies across WhatWeb sessions
Domain-aware cookie storage: New format tracks cookies per domain (backwards compatible with legacy single-domain format)
Automatic file creation: Cookie jar file is created if it doesn't exist
Thread-safe implementation: Mutex-protected cookie operations for concurrent scanning

Implementation Details:

Modified SimpleCookieJar to support load_from_file() and save_to_file() methods
Cookie jar file uses domain-aware format: # Domain: example.com followed by cookie string
Maintains backward compatibility with legacy cookie jar format
Saves cookies at program exit, preserving session state
Added proper error handling and directory creation for cookie jar files
2025-10-18 17:00:51 +11:00
Andrew Horton 608cc2b3f4 Cookie redirection handling & improved error, debug and warning messages 2025-10-18 16:31:03 +11:00
Andrew Horton cfc8948657 Updated plugin contributions with version numbers and author details. Fixed WhatWeb Logo hosting 2025-10-18 14:57:23 +11:00
Andrew Horton 36fd28b83e Version 0.6.2 - August 25, 2025
Changelog:
* Fixed uninitialized constant error. Requires 'set' gem for specific Ruby versions. (@J-Run)
* Added support for scanning .onion (Tor) domains when using HTTP proxy
  - Bypasses DNS resolution for .onion domains to enable scanning through Tor proxy
  - Allows scanning of Tor hidden services without DNS resolution errors
  - Compatible with custom/internal TLDs
2025-08-25 23:36:34 +10:00
J-Run 73bb52b300 Update whatweb.rb - fix uninitialized constant error 2025-08-14 14:05:25 +03:00
Andrew Horton 29aa301273 Version 0.6.1 - August 2, 2025
Changelog:
* Updated version from 0.5.5 to 0.6.1
* Improved SSL/TLS security with comprehensive cipher suite support (TLSv1, TLSv1.1, TLSv1.2, SSLv3, SSLv2)
  - Added SSL_ATTRIBUTES constant for verify_mode
  - Replaced dynamic SSL parameter collection with explicit SSLContext configuration
  - Set verify_mode to VERIFY_NONE for maximum compatibility
  - Enabled negotiation of all SSL/TLS versions including legacy SSLv2/SSLv3
* Enhanced HTTPS connection handling with optimized verification settings
  - Cleared minimum version restrictions and disabled protocol exclusion flags
  - Added fallback handling for different OpenSSL configurations
* Added dual-protocol feature: simple hostnames (without paths or ports) are now scanned using both HTTP and HTTPS protocols
  - Automatically creates and tests both HTTP and HTTPS versions of simple hostnames
  - Shows informational message when dual-protocol scanning is performed
  - Intelligently detects and avoids duplicate URL scanning with redirect handling
* Added robust input validation and error handling
  - Automatically aborts processing after 10 consecutive parsing errors
  - Prevents wasted resources when processing invalid data sources
  - Provides helpful error messages to guide users in troubleshooting input issues
  - Handles various error cases including malformed URLs and non-URL input data
* Improved dependency management with Bundler group support
  - Reorganized Gemfile with proper optional group definitions for mongo and rchardet
  - Added clear installation instructions for optional dependencies
  - Set explicit version constraints for test dependencies
  - Added support for older Bundler versions through GEMFILE_GROUPS environment variable
* Expanded documentation for optional dependencies
  - Added detailed installation instructions for MongoDB support
  - Added clear steps for character set detection configuration
  - Provided combined installation commands for all optional features
  - Improved explanation of performance implications

This release introduces three new search contexts for plugin authors to use:
- uri.path
- uri.query
- uri.extension

An example of how to use this is from the PHP plugin.

```
{ :name=>"File extension", :regexp=>/^(php|phtml|php3|php4|php5|phps)$/, :search=>"uri.extension" }
```

* #311 - JSON Logging fails... UTF-8 can't modify frozen String (@juananpe)

* Refactored Helper::convert_to_utf8. Droped Ruby 2.0 support (@urbanadventurer)
* Added new search contexts for plugins: uri.path, uri.query, uri.extension (@urbanadventurer)

* Plex Media Server (@urbanadventurer)
* Meta-Facebook-Infrastructure (@urbanadventurer)
* Netflix-Platform (@urbanadventurer)
* VKontakte-Platform (@urbanadventurer)
* Distributed-Tracing (@urbanadventurer)
* Modern-Security-Headers (@urbanadventurer)
* Baidu-Platform (@urbanadventurer)
* Alibaba-Aliyun (@urbanadventurer)
* Weibo-Platform (@urbanadventurer)

* Adobe-Flash (@urbanadventurer)
* ASP_NET (@urbanadventurer)
* ColdFusion (@urbanadventurer)
* Drupal (@gboddin)
* Java (@urbanadventurer)
* Perl (@urbanadventurer)
* PHP (@urbanadventurer)
* Python (@urbanadventurer)
* Ruby (@urbanadventurer)
* TYPO3 (@definity)
* WordPress (@juananpe)
* Shopify (enhanced HTTP header detection) (@urbanadventurer)
* CloudFlare (enhanced with CF-RAY and other headers) (@urbanadventurer)
* CloudFront (renamed to Amazon-CloudFront and enhanced) (@urbanadventurer)
* Tengine Web Server (added Alibaba-specific headers) (@urbanadventurer)
* Content-Security-Policy (added modern CSP headers) (@urbanadventurer)
* Azure (renamed to Microsoft-Azure and enhanced) (@urbanadventurer)
2025-08-02 03:04:19 +10:00
Andrew Horton a0038e880f Configure SSL for maximum compatibility with legacy protocols
- Add SSL_ATTRIBUTES constant for verify_mode
- Replace dynamic SSL parameter collection with explicit SSLContext configuration
- Set verify_mode to VERIFY_NONE for maximum compatibility
- Enable negotiation of all SSL/TLS versions including legacy SSLv2/SSLv3
- Clear minimum version restrictions and disable protocol exclusion flags
- Add fallback handling for different OpenSSL configurations
2025-07-30 18:56:38 +10:00
Andrew Horton 7f024adc1f Add new search contexts: uri.path, uri.query, uri.extension 2021-02-28 16:22:44 +11:00
Andrew Horton b5d2e136ef Added comment about freezing plugin attributes 2021-01-20 00:25:36 +11:00
Andrew Horton 32728d36b1 Drop Ruby 2.0 support in Helper::convert_to_utf8 2021-01-20 00:21:51 +11:00
Juanan Pereira c2c7d69063 Fix #311 - JSON Logging fails... UTF-8 can't modify frozen String 2021-01-18 20:13:40 +01:00
Juanan Pereira ea5cc2b45c Fix escape_for_sql method 2021-01-15 11:09:07 +01:00
Andrew Horton d16ec1345a Version bump to v0.5.5 2021-01-09 20:11:23 +11:00
Andrew Horton fb339f7d86 Version bump to 0.5.4 2020-12-14 15:53:19 +11:00
Juanan Pereira d64a7b035e Replace username by user in Mongo Client connection options 2020-11-25 22:31:18 +01:00
Andrew Horton 54fcbaf796 Fix #345 change colours to be bold and reset instead of white and grey. This makes the colour output readable with both light and dark terminal backgrounds. 2020-11-05 00:24:13 +11:00
Brendan Coles d9d24c27e0 lib/helpers: rubocop cleanup 2020-10-03 06:31:57 +00:00
Brendan Coles d8b7833b0d lib/whatweb: rubocop cleanup 2020-10-03 03:58:26 +00:00
bcoles 88d4c0f989 Merge pull request #328 from bcoles/lib-headers
lib: line wrap library comment headers
2020-10-03 13:38:23 +10:00
Brendan Coles f3f5795e93 lib: gems.rb rubocop cleaup 2020-10-03 03:06:57 +00:00
Brendan Coles b3143e270f lib: line wrap library comment headers 2020-10-03 03:04:56 +00:00
Andrew Horton d63e913f81 Bump version 2020-10-01 22:43:19 +10:00
Juanan Pereira f4506099b9 change mongo logging policy to upsert (update by default, insert if new) 2020-08-28 17:41:04 +02:00
urbanadventurer b968f5ba6e Version bump to 0.5.2 2020-06-09 23:20:51 +04:00
Lars Kulseng 72e92c080f Set the default mongodb log level to FATAL 2020-05-05 17:31:59 +02:00
Weidsom Nascimento b4ff844ff3 Fix some warnings of "URI.escape is obsolete"
Simple fix
2020-02-25 18:16:33 -03:00
urbanadventurer 628a4b85af Fix #289 - removed empty array at end of JSON output 2020-01-22 07:33:56 +11:00
urbanadventurer 694eda18c4 Update Copyright strings to 2020 2020-01-22 07:12:48 +11:00
urbanadventurer a696f86151 Fix #288. When target lists are empty it now outputs an error() message and returns instead of using raise(). 2020-01-22 07:05:22 +11:00
urbanadventurer 4fcd2b18f5 Version bump to 0.5.1 2019-11-20 01:59:33 +11:00
urbanadventurer 12c8630dc0 Rename unused variable 2019-06-15 03:40:57 +10:00
urbanadventurer 96b3863469 Rename unused variables in Version Class 2019-06-15 03:40:07 +10:00
urbanadventurer a271d9b4ee Cleaned up the decode_html_entities function 2019-06-10 21:45:51 +10:00
urbanadventurer 62ebc57cc2 Fix #268 in get_redirection_target. Thanks @bcoles 2019-06-10 21:19:42 +10:00
urbanadventurer e7aa62acf3 Skip Easter Egg plugin in plugin-info output 2019-06-10 12:06:53 +10:00
urbanadventurer ac29a4066d Skip Easter Egg plugin in plugin listing 2019-06-10 12:05:29 +10:00
urbanadventurer e883187e7b Removed some commented code 2019-06-10 12:01:05 +10:00
urbanadventurer 2cb1e6d4c5 Changed plugin list behaviour to show Plugin Names and Websites instead of a truncated description. 2019-06-10 11:59:05 +10:00
urbanadventurer 2ea39d07da Update all copyright notices to Copyright 2009 to 2019 Andrew Horton and Brendan Coles 2019-06-10 10:00:56 +10:00
urbanadventurer 3a6c7a8ae0 Clean up rescues and fix warning: assigned but unused variable - err 2019-06-10 06:11:06 +10:00
urbanadventurer 13086e21ba warning: shadowing outer local variable - thisgem 2019-06-10 06:06:20 +10:00
urbanadventurer 8f0684c5b5 warning: Dir.exists? is a deprecated name, use Dir.exist? instead 2019-06-10 06:04:02 +10:00
urbanadventurer e85eaad7db Updated required gem detection. Added development Gem group with pry and rb-readline. 2019-06-10 05:11:35 +10:00
urbanadventurer b57e003458 Fix bug with loading plugins. Load plugins from either the plugins/ folder relative to the WhatWeb file, or from /usr/share/whatweb/ 2019-06-10 04:23:58 +10:00
urbanadventurer 4b83a3a8f3 use require_relative in lib/whatweb.rb to fix bug when loading from a different CWD 2019-06-10 03:04:07 +10:00
urbanadventurer faa407c3bf Changed version from 0.5.0-dev to 0.5.0 2019-06-10 00:15:22 +10:00