117 Commits

Author SHA1 Message Date
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 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
urbanadventurer 694eda18c4 Update Copyright strings to 2020 2020-01-22 07:12:48 +11: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
Brendan Coles 2b6a5a17b8 Initialize @website 2017-12-08 20:13:19 +00:00
urbanadventurer 1568422060 Removed unnecessary r = [] from ScanContext 2017-12-09 03:17:50 +11:00
urbanadventurer 66fd80eb81 Removed unnecessary variables line from ScanContext causing aggressive plugins to fail. Added scanner keyword to ScanContext.new. Added Scan_scan_from_plugin method 2017-12-09 03:13:27 +11:00
urbanadventurer b098ae99ca Add @scanner to ScanContext 2017-12-09 02:58:20 +11:00
urbanadventurer 6f99fab4fe Add scanner to ScanContext. Add keyword parameters to ScanContext.new. Update Parser.run_plugins keywords with nil 2017-12-09 02:56:58 +11:00
Brendan Coles dad35cf80e Add Plugin.shutdown_all convenience method 2017-12-04 00:48:33 +00:00
urbanadventurer 7703a9f811 Moved PluginChoice class to plugin_support.rb 2017-12-04 10:03:39 +11:00
urbanadventurer 4447d8362a Move PluginSupport class into plugin_support.rb 2017-12-04 09:36:02 +11:00
urbanadventurer d1d77bf6f6 Check all calls to exit. Added comment. 2017-12-04 00:39:08 +11:00
urbanadventurer b64873c91b Fixed bug. Now calling word_wrap and certainty_to_words from OutputHelper Module with OutputHelper::certainty_to_words so it works from both instantiated and uninstantiated classes. 2017-12-04 00:34:11 +11:00
Brendan Coles 91e40be5b0 in-line eval custom and grep plugins 2017-12-02 19:28:16 +00:00
Brendan Coles 38bc4f0b06 Tidy load_plugins 2017-12-02 17:32:09 +00:00
Brendan Coles fad320f2f6 Remove +plugins-disabled short hand 2017-12-02 17:26:27 +00:00
Brendan Coles f4a97452db Use root_dir rather than LOAD_PATH 2017-12-02 17:09:57 +00:00
Brendan Coles ca4ab16e1f Style update lib/ 2017-12-02 07:26:50 +00:00
urbanadventurer 2a6fa67057 Ruby style ! vs not 2017-12-02 09:26:22 +11:00
urbanadventurer ed8d09678e Updated ruby style in lib/plugins.rb 2017-12-02 09:19:43 +11:00
urbanadventurer 0e31473aa7 Added backtrace to errors for commandline option processing when --debug is enabled 2017-12-02 05:22:23 +11:00
urbanadventurer 22e7513efe Changed the behaviour of --grep so regexp or text can be matched 2017-12-01 11:04:44 +11:00
urbanadventurer 58d5efe1f9 Fixed #227. After refactoring behaviour of plugin variables changed from undefined to nil. This fixes that by dropping .defined? and using .any? .empty? and just checking for !nil 2017-12-01 09:52:44 +11:00
urbanadventurer db91d9a80f Added support for the authors[] array 2017-12-01 05:18:30 +11:00
urbanadventurer 281647b74d Make commandline defined plugins compatible with the new plugins 2017-11-24 04:07:55 +11:00
urbanadventurer d7fc501483 Code0x58 ffb79d31e8
Small tidy up of Plugin class
 * remove unused :cve attribute
 * freeze attributes set by plugins

Also removed unused set_plugin_name function
2017-11-24 03:50:42 +11:00
urbanadventurer 867c78a43e Implementing more updates from Code0x58.
Stop using arbitrary instance variables on plugin in setup - a93070c413
 * updated 5 plugins to use @variables and to stop using plugin methods
  in `aggressive` and `passive` - these are now fixed after the last
  commit which broke them.
2017-11-24 03:38:57 +11:00
urbanadventurer 7b0f36606c Change passive and aggressive plugins to blocks
33bafb5530 from Code0x58
2017-11-24 01:58:08 +11:00
urbanadventurer 47d9739263 Move plugin name into the block passed to Plugin.define 2017-11-24 01:43:27 +11:00
urbanadventurer 0628660703 Merged code commits from Code0x58 -
Fix plugin locking ae86a3fbda
'fix-plugin-locking' 5b92dc1
2017-11-24 00:50:18 +11:00
urbanadventurer 55a6a7ea85 Updated copyright text and author description 2017-11-23 23:59:46 +11:00
urbanadventurer 76ed48d4a4 0.4.9 version release 2017-11-23 23:28:58 +11:00
Oliver Bristow 6bd3732949 Clean up whitespace and formatting in plugins.rb 2017-04-02 00:17:31 +01:00
Oliver Bristow 73df52578a Clean up whitespace in plugins.rb 2017-04-01 22:29:42 +01:00
urbanadventurer b111601918 protect make_matches from nil search_context 2016-05-01 00:51:10 +10:00
urbanadventurer fc75285bc1 undo 2016-05-01 00:44:07 +10:00
urbanadventurer f0e76e9711 Added error message for invalid search context 2016-05-01 00:39:53 +10:00
urbanadventurer fad9ecd38a Added relative URL matching.
Fixed Unexpected behaviour with :url and :status in plugins - Incorrect Traffic Inspector Matches #74

if url and status are present, they must both match
url and status cannot be alone. there must be something else that has already matched

url is not relative if :url starts with /
url is relative if :url starts with [^/]
url query is only checked if :url has a ?
{:url="edit?action=stop" } will only match if the end of the path and the entire query matches.
:url is for URIs not regexes
2016-04-30 21:59:02 +10:00
urbanadventurer b184271ec0 debugging added to def PluginSupport.load_plugins(list=nil) 2016-04-30 20:41:45 +10:00
urbanadventurer 53c15d429c New Verbose Output.
Note that output plugins are now passed the complete target object instead of just the target.to_s string
2016-04-28 22:54:36 +10:00
urbanadventurer e739621111 Removed list of matches[] from --info-plugins output 2016-04-20 18:50:34 +10:00
urbanadventurer 25b73eecc1 Fixed bug where :search => headers[xyz] was not case insensitive 2016-04-18 17:44:47 +10:00
urbanadventurer 5ce55a98b8 Removed old plugin detailed information function 2016-04-18 00:59:17 +10:00
urbanadventurer 2e32431b4e Updated detailed plugin list to include a total count of plugins that have version detection from pattern matching 2016-04-17 23:16:36 +10:00
urbanadventurer 544175e21c Improved detailed plugin listing
WhatWeb Detailed Plugin List
================================================================================
Plugin:         1024-CMS
--------------------------------------------------------------------------------
Description:    1024 is one of a few CMS's leading the way with the
                implementation of the AJAX technology into all its areas. This
                includes dynamic adminstration and user interaction. 1024
                offers you to ability to set up your own community forums,
                download area, news posts, member management and more.
Website:        http://www.1024cms.org/

Author:         Brendan Coles <bcoles@gmail.com>
Version:        0.1

Features:       [Yes]  Pattern Matching (2)
                [No]   Version detection from pattern matching
                [No]   Function for passive matches
                [No]   Function for aggressive matches
                [No]   Google Dorks

Pattern Matching:
[1] {:text=>"<div id='otatfpowered'><a href='http://www.1024cms.com' target='_blank'>Powered by 1024 CMS</a></div></div>"}
[2] {:text=>"<meta name=\"generator\" content=\"1024 CMS (c) 2008 Treble Designs. This is free software, and you may redistribute it under the Attribution-Non-Commercial-Share Alik
e 2.0 license (http://creativecommons.org/licenses/by-nc-sa/2.0/uk/). 1024 CMS comes with absolutely no warranty, for details, see the license (http://creativecommons.org/licenses/
by-nc-sa/2.0/uk/).\" />"}
2016-04-17 22:59:49 +10:00
urbanadventurer 3211a47cc7 removed code that is no longer necessary - registered_plugins.delete_if {|n,p| n == "\302\277" } 2016-04-17 13:19:50 +10:00
urbanadventurer 1427686419 fixed terminal width with list plugins 2016-04-17 13:13:20 +10:00
urbanadventurer c19dcb99aa Updated plugin list output. Shows more description. Changed hint about --info-plugins 2016-04-17 02:02:47 +10:00