watobo 0.9.8.677
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/watobo_gui.rb +39 -0
- data/certificates/cert.pem +19 -0
- data/certificates/privkey.pem +15 -0
- data/certificates/watobo_dh.key +5 -0
- data/config/datastore.yml +5 -0
- data/config/forwarding_proxy.yml +12 -0
- data/config/general.yml +4 -0
- data/config/gui.yml +23 -0
- data/config/interceptor.yml +16 -0
- data/config/scan_policy.yml +13 -0
- data/config/scanner.yml +34 -0
- data/icons/Add.ico +0 -0
- data/icons/Add_24x24.ico +0 -0
- data/icons/Bandwidth.ico +0 -0
- data/icons/Bandwidth_24x24.ico +0 -0
- data/icons/Mr. Bomb.ico +0 -0
- data/icons/Mr. Bomb_16x16.ico +0 -0
- data/icons/Mr. Bomb_24x24.ico +0 -0
- data/icons/Orange Ball.ico +0 -0
- data/icons/Orange Ball_16x16.ico +0 -0
- data/icons/Orange Ball_24x24.ico +0 -0
- data/icons/Pause.ico +0 -0
- data/icons/Play.ico +0 -0
- data/icons/Play_24x24.ico +0 -0
- data/icons/Red Ball.ico +0 -0
- data/icons/Red Ball_16x16.ico +0 -0
- data/icons/Red Ball_24x24.ico +0 -0
- data/icons/Run.ico +0 -0
- data/icons/Stop.ico +0 -0
- data/icons/Stop_24x24.ico +0 -0
- data/icons/Terminal.ico +0 -0
- data/icons/Transfer.ico +0 -0
- data/icons/Transfer_16x16.ico +0 -0
- data/icons/User.ico +0 -0
- data/icons/User_16x16.ico +0 -0
- data/icons/User_24x24.ico +0 -0
- data/icons/Web Browser.ico +0 -0
- data/icons/Web Browser_16x16.ico +0 -0
- data/icons/Write Document.ico +0 -0
- data/icons/Yellow Ball.ico +0 -0
- data/icons/Yellow Ball_16x16.ico +0 -0
- data/icons/Yellow Ball_24x24.ico +0 -0
- data/icons/advanced.ico +0 -0
- data/icons/advanced_16x16.ico +0 -0
- data/icons/advanced_24x24.ico +0 -0
- data/icons/applications.ico +0 -0
- data/icons/applications_16x16.ico +0 -0
- data/icons/applications_24x24.ico +0 -0
- data/icons/browser_16x16.ico +0 -0
- data/icons/browser_24x24.ico +0 -0
- data/icons/burn.ico +0 -0
- data/icons/burn_16x16.ico +0 -0
- data/icons/burn_24x24.ico +0 -0
- data/icons/calculator.ico +0 -0
- data/icons/calculator_24x24.ico +0 -0
- data/icons/cb_checked.ico +0 -0
- data/icons/cb_checked_orange.ico +0 -0
- data/icons/cb_unchecked.ico +0 -0
- data/icons/coin_24x24.ico +0 -0
- data/icons/conversation.ico +0 -0
- data/icons/conversation_24x24.ico +0 -0
- data/icons/engine.ico +0 -0
- data/icons/filter.ico +0 -0
- data/icons/folder.ico +0 -0
- data/icons/folder_16x16.ico +0 -0
- data/icons/fuzzer_16x16.ico +0 -0
- data/icons/fuzzer_24x24.ico +0 -0
- data/icons/go-down_16x16.png +0 -0
- data/icons/go-up_16x16.png +0 -0
- data/icons/help.ico +0 -0
- data/icons/help_16x16.ico +0 -0
- data/icons/help_24x24.ico +0 -0
- data/icons/iChat.ico +0 -0
- data/icons/iChat_16x16.ico +0 -0
- data/icons/iChat_24x24.ico +0 -0
- data/icons/icons.txt +3 -0
- data/icons/info.ico +0 -0
- data/icons/info_16x16.ico +0 -0
- data/icons/info_24x24.ico +0 -0
- data/icons/interceptor_24x24.ico +0 -0
- data/icons/lock.ico +0 -0
- data/icons/lock_12x12.ico +0 -0
- data/icons/lock_16x16.ico +0 -0
- data/icons/monitor.ico +0 -0
- data/icons/plugin.ico +0 -0
- data/icons/plugin_24x24.ico +0 -0
- data/icons/scan_16x16.png +0 -0
- data/icons/send.ico +0 -0
- data/icons/server.ico +0 -0
- data/icons/server_16x16.ico +0 -0
- data/icons/siberas_logo_x24.gif +0 -0
- data/icons/tag_blue_32x32.ico +0 -0
- data/icons/watobo-48x48.png +0 -0
- data/icons/watobo-logo.png +0 -0
- data/icons/watobo.ico +0 -0
- data/lib/watobo/adapters/data_store.rb +38 -0
- data/lib/watobo/adapters/file/file_store.rb +211 -0
- data/lib/watobo/adapters/session_store.rb +27 -0
- data/lib/watobo/adapters.rb +26 -0
- data/lib/watobo/config.rb +143 -0
- data/lib/watobo/constants.rb +92 -0
- data/lib/watobo/core/active_check.rb +404 -0
- data/lib/watobo/core/cookie.rb +69 -0
- data/lib/watobo/core/fuzz_gen.rb +160 -0
- data/lib/watobo/core/http_socket.rb +142 -0
- data/lib/watobo/core/interceptor.rb +729 -0
- data/lib/watobo/core/passive_check.rb +141 -0
- data/lib/watobo/core/project.rb +1058 -0
- data/lib/watobo/core/scanner.rb +396 -0
- data/lib/watobo/core/session.rb +1320 -0
- data/lib/watobo/core/simple_ca.rb +393 -0
- data/lib/watobo/core.rb +34 -0
- data/lib/watobo/defaults.rb +40 -0
- data/lib/watobo/external/diff/lcs/array.rb +42 -0
- data/lib/watobo/external/diff/lcs/block.rb +72 -0
- data/lib/watobo/external/diff/lcs/callbacks.rb +343 -0
- data/lib/watobo/external/diff/lcs/change.rb +190 -0
- data/lib/watobo/external/diff/lcs/hunk.rb +279 -0
- data/lib/watobo/external/diff/lcs/ldiff.rb +247 -0
- data/lib/watobo/external/diff/lcs/string.rb +40 -0
- data/lib/watobo/external/diff/lcs.rb +1124 -0
- data/lib/watobo/external/ntlm/ntlm.rb +797 -0
- data/lib/watobo/externals.rb +28 -0
- data/lib/watobo/framework/create_project.rb +55 -0
- data/lib/watobo/framework/init.rb +149 -0
- data/lib/watobo/framework/init_modules.rb +116 -0
- data/lib/watobo/framework/license_text.rb +50 -0
- data/lib/watobo/framework.rb +26 -0
- data/lib/watobo/gui/about_watobo.rb +68 -0
- data/lib/watobo/gui/browser_preview.rb +460 -0
- data/lib/watobo/gui/certificate_dialog.rb +132 -0
- data/lib/watobo/gui/chat_diff.rb +415 -0
- data/lib/watobo/gui/chatviewer_frame.rb +427 -0
- data/lib/watobo/gui/checkboxtree.rb +221 -0
- data/lib/watobo/gui/checks_policy_frame.rb +123 -0
- data/lib/watobo/gui/client_cert_dialog.rb +227 -0
- data/lib/watobo/gui/confirm_scan_dialog.rb +67 -0
- data/lib/watobo/gui/conversation_table.rb +386 -0
- data/lib/watobo/gui/conversation_table_ctrl.rb +175 -0
- data/lib/watobo/gui/csrf_token_dialog.rb +446 -0
- data/lib/watobo/gui/dashboard.rb +341 -0
- data/lib/watobo/gui/define_scope_frame.rb +380 -0
- data/lib/watobo/gui/edit_comment.rb +70 -0
- data/lib/watobo/gui/edit_scope_dialog.rb +69 -0
- data/lib/watobo/gui/finding_info.rb +212 -0
- data/lib/watobo/gui/findings_tree.rb +459 -0
- data/lib/watobo/gui/full_scan_dialog.rb +269 -0
- data/lib/watobo/gui/fuzzer_gui.rb +1522 -0
- data/lib/watobo/gui/hex_viewer.rb +106 -0
- data/lib/watobo/gui/interceptor_gui.rb +994 -0
- data/lib/watobo/gui/interceptor_settings_dialog.rb +201 -0
- data/lib/watobo/gui/log_viewer.rb +97 -0
- data/lib/watobo/gui/login_wizzard.rb +301 -0
- data/lib/watobo/gui/main_window.rb +1815 -0
- data/lib/watobo/gui/manual_request_editor.rb +1105 -0
- data/lib/watobo/gui/master_pw_dialog.rb +142 -0
- data/lib/watobo/gui/password_policy_dialog.rb +98 -0
- data/lib/watobo/gui/plugin/base.rb +82 -0
- data/lib/watobo/gui/plugin_board.rb +95 -0
- data/lib/watobo/gui/preferences_dialog.rb +116 -0
- data/lib/watobo/gui/progress_window.rb +102 -0
- data/lib/watobo/gui/project_wizzard.rb +369 -0
- data/lib/watobo/gui/proxy_dialog.rb +550 -0
- data/lib/watobo/gui/quick_scan_dialog.rb +242 -0
- data/lib/watobo/gui/request_editor.rb +480 -0
- data/lib/watobo/gui/save_chat_dialog.rb +158 -0
- data/lib/watobo/gui/scanner_settings_dialog.rb +360 -0
- data/lib/watobo/gui/select_chat_dialog.rb +169 -0
- data/lib/watobo/gui/session_management_dialog.rb +688 -0
- data/lib/watobo/gui/sites_tree.rb +347 -0
- data/lib/watobo/gui/status_bar.rb +88 -0
- data/lib/watobo/gui/table_editor.rb +445 -0
- data/lib/watobo/gui/tagless_viewer.rb +62 -0
- data/lib/watobo/gui/templates/plugin.rb +80 -0
- data/lib/watobo/gui/templates/plugin2.rb +103 -0
- data/lib/watobo/gui/text_viewer.rb +247 -0
- data/lib/watobo/gui/transcoder_window.rb +215 -0
- data/lib/watobo/gui/utils/gui_utils.rb +129 -0
- data/lib/watobo/gui/utils/init_icons.rb +106 -0
- data/lib/watobo/gui/utils/load_icons.rb +54 -0
- data/lib/watobo/gui/utils/load_plugins.rb +94 -0
- data/lib/watobo/gui/utils/master_password.rb +90 -0
- data/lib/watobo/gui/utils/save_default_settings.rb +99 -0
- data/lib/watobo/gui/utils/save_project_settings.rb +21 -0
- data/lib/watobo/gui/utils/save_proxy_settings.rb +45 -0
- data/lib/watobo/gui/utils/save_session_settings.rb +21 -0
- data/lib/watobo/gui/utils/session_history.rb +134 -0
- data/lib/watobo/gui/workspace_dialog.rb +89 -0
- data/lib/watobo/gui/www_auth_dialog.rb +348 -0
- data/lib/watobo/gui/xml_viewer_frame.rb +114 -0
- data/lib/watobo/gui.rb +139 -0
- data/lib/watobo/mixins/httpparser.rb +664 -0
- data/lib/watobo/mixins/request_parser.rb +210 -0
- data/lib/watobo/mixins/shapers.rb +345 -0
- data/lib/watobo/mixins/transcoders.rb +88 -0
- data/lib/watobo/mixins.rb +32 -0
- data/lib/watobo/utils/check_regex.rb +36 -0
- data/lib/watobo/utils/copy_object.rb +29 -0
- data/lib/watobo/utils/crypto.rb +74 -0
- data/lib/watobo/utils/expand_range.rb +45 -0
- data/lib/watobo/utils/file_management.rb +73 -0
- data/lib/watobo/utils/load_chat.rb +219 -0
- data/lib/watobo/utils/load_icon.rb +47 -0
- data/lib/watobo/utils/print_debug.rb +34 -0
- data/lib/watobo/utils/response_hash.rb +143 -0
- data/lib/watobo/utils/secure_eval.rb +57 -0
- data/lib/watobo/utils/text2request.rb +96 -0
- data/lib/watobo/utils.rb +32 -0
- data/lib/watobo.rb +76 -0
- data/modules/active/Apache/mod_status.rb +123 -0
- data/modules/active/Flash/crossdomain.rb +102 -0
- data/modules/active/directories/dirwalker.rb +89 -0
- data/modules/active/discovery/fileextensions.rb +151 -0
- data/modules/active/discovery/http_methods.rb +135 -0
- data/modules/active/domino/domino_db.lst +164 -0
- data/modules/active/domino/domino_db.rb +128 -0
- data/modules/active/fileinclusion/lfi_simple.rb +134 -0
- data/modules/active/jboss/jboss_basic.rb +119 -0
- data/modules/active/sap/business_objects.rb +73 -0
- data/modules/active/sap/its_commands.rb +101 -0
- data/modules/active/sap/its_service_parameter.rb +105 -0
- data/modules/active/sap/its_services.rb +103 -0
- data/modules/active/sap/its_xss.rb +98 -0
- data/modules/active/sqlinjection/sql_boolean.rb +262 -0
- data/modules/active/sqlinjection/sqli_simple.rb +205 -0
- data/modules/active/xss/xss_simple.rb +179 -0
- data/modules/passive/cookie_options.rb +97 -0
- data/modules/passive/cookie_xss.rb +85 -0
- data/modules/passive/detect_code.rb +89 -0
- data/modules/passive/detect_fileupload.rb +80 -0
- data/modules/passive/detect_infrastructure.rb +98 -0
- data/modules/passive/detect_one_time_tokens.rb +86 -0
- data/modules/passive/dirindexing.rb +81 -0
- data/modules/passive/disclosure_emails.rb +82 -0
- data/modules/passive/disclosure_ipaddr.rb +87 -0
- data/modules/passive/filename_as_parameter.rb +85 -0
- data/modules/passive/form_spotter.rb +75 -0
- data/modules/passive/hotspots.rb +86 -0
- data/modules/passive/in_script_parameter.rb +92 -0
- data/modules/passive/multiple_server_headers.rb +98 -0
- data/modules/passive/possible_login.rb +134 -0
- data/modules/passive/redirect_url.rb +88 -0
- data/modules/passive/redirectionz.rb +96 -0
- data/modules/passive/xss_dom.rb +91 -0
- data/plugins/catalog/catalog.ico +0 -0
- data/plugins/catalog/catalog.rb +726 -0
- data/plugins/catalog/db_tests +6483 -0
- data/plugins/catalog/db_variables +29 -0
- data/plugins/filefinder/dbs/hbci.db +12 -0
- data/plugins/filefinder/filefinder.rb +602 -0
- data/plugins/sslchecker/cli/sslchecker_cli.rb +21 -0
- data/plugins/sslchecker/gui/cipher_table.rb +260 -0
- data/plugins/sslchecker/gui/gui.rb +245 -0
- data/plugins/sslchecker/gui/sslchecker.rb +26 -0
- data/plugins/sslchecker/icons/green_16x16.ico +0 -0
- data/plugins/sslchecker/icons/grey_16x16.ico +0 -0
- data/plugins/sslchecker/icons/red_16x16.ico +0 -0
- data/plugins/sslchecker/icons/sslchecker.ico +0 -0
- data/plugins/sslchecker/lib/check.rb +117 -0
- metadata +317 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# .
|
|
2
|
+
# externals.rb
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2012 by siberas, http://www.siberas.de
|
|
5
|
+
#
|
|
6
|
+
# This file is part of WATOBO (Web Application Tool Box)
|
|
7
|
+
# http://watobo.sourceforge.com
|
|
8
|
+
#
|
|
9
|
+
# WATOBO is free software; you can redistribute it and/or modify
|
|
10
|
+
# it under the terms of the GNU General Public License as published by
|
|
11
|
+
# the Free Software Foundation version 2 of the License.
|
|
12
|
+
#
|
|
13
|
+
# WATOBO is distributed in the hope that it will be useful,
|
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
# GNU General Public License for more details.
|
|
17
|
+
#
|
|
18
|
+
# You should have received a copy of the GNU General Public License
|
|
19
|
+
# along with WATOBO; if not, write to the Free Software
|
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
+
# .
|
|
22
|
+
require 'watobo/external/diff/lcs'
|
|
23
|
+
require 'watobo/external/diff/lcs/hunk'
|
|
24
|
+
require 'watobo/external/diff/lcs/callbacks'
|
|
25
|
+
require 'watobo/external/diff/lcs/block'
|
|
26
|
+
require 'watobo/external/diff/lcs/change'
|
|
27
|
+
|
|
28
|
+
require 'watobo/external/ntlm/ntlm'
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# .
|
|
2
|
+
# create_project.rb
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2012 by siberas, http://www.siberas.de
|
|
5
|
+
#
|
|
6
|
+
# This file is part of WATOBO (Web Application Tool Box)
|
|
7
|
+
# http://watobo.sourceforge.com
|
|
8
|
+
#
|
|
9
|
+
# WATOBO is free software; you can redistribute it and/or modify
|
|
10
|
+
# it under the terms of the GNU General Public License as published by
|
|
11
|
+
# the Free Software Foundation version 2 of the License.
|
|
12
|
+
#
|
|
13
|
+
# WATOBO is distributed in the hope that it will be useful,
|
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
# GNU General Public License for more details.
|
|
17
|
+
#
|
|
18
|
+
# You should have received a copy of the GNU General Public License
|
|
19
|
+
# along with WATOBO; if not, write to the Free Software
|
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
+
# .
|
|
22
|
+
module Watobo
|
|
23
|
+
# create_project is a wrapper function to create a new project
|
|
24
|
+
# you can either create a project by giving a URL (:url),
|
|
25
|
+
# or by giving a :project_name AND a :session_name
|
|
26
|
+
def self.create_project(prefs={})
|
|
27
|
+
project_settings = Hash.new
|
|
28
|
+
# project_settings.update @settings
|
|
29
|
+
|
|
30
|
+
if prefs.has_key? :url
|
|
31
|
+
#TODO: create project_settings from url
|
|
32
|
+
else
|
|
33
|
+
project_settings[:project_name] = prefs[:project_name]
|
|
34
|
+
project_settings[:session_name] = prefs[:session_name]
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
ds = Watobo::DataStore.aquire(project_settings[:project_name], project_settings[:session_name])
|
|
38
|
+
project_settings[:session_store] = ds
|
|
39
|
+
|
|
40
|
+
puts "= initialize passive checks ="
|
|
41
|
+
project_settings[:passive_checks] = init_passive_modules
|
|
42
|
+
puts "Total: " + project_settings[:passive_checks].length.to_s
|
|
43
|
+
puts
|
|
44
|
+
puts "= initialize active checks ="
|
|
45
|
+
project_settings[:active_checks] = init_active_modules
|
|
46
|
+
# project_settings[:active_checks].each do |ac|
|
|
47
|
+
# puts ac.class
|
|
48
|
+
# end
|
|
49
|
+
puts "Total: " + project_settings[:active_checks].length.to_s
|
|
50
|
+
|
|
51
|
+
project = Project.new(project_settings)
|
|
52
|
+
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
end
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# .
|
|
2
|
+
# init.rb
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2012 by siberas, http://www.siberas.de
|
|
5
|
+
#
|
|
6
|
+
# This file is part of WATOBO (Web Application Tool Box)
|
|
7
|
+
# http://watobo.sourceforge.com
|
|
8
|
+
#
|
|
9
|
+
# WATOBO is free software; you can redistribute it and/or modify
|
|
10
|
+
# it under the terms of the GNU General Public License as published by
|
|
11
|
+
# the Free Software Foundation version 2 of the License.
|
|
12
|
+
#
|
|
13
|
+
# WATOBO is distributed in the hope that it will be useful,
|
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
# GNU General Public License for more details.
|
|
17
|
+
#
|
|
18
|
+
# You should have received a copy of the GNU General Public License
|
|
19
|
+
# along with WATOBO; if not, write to the Free Software
|
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
+
# .
|
|
22
|
+
module Watobo
|
|
23
|
+
|
|
24
|
+
@active_checks = []
|
|
25
|
+
@passive_checks = []
|
|
26
|
+
def self.active_checks
|
|
27
|
+
@active_checks
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def self.passive_checks
|
|
31
|
+
@passive_checks
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def self.init_framework()
|
|
35
|
+
puts "* Initializing Framework"
|
|
36
|
+
init_working_directory
|
|
37
|
+
|
|
38
|
+
# @settings.update settings
|
|
39
|
+
|
|
40
|
+
puts "* loading custom settings ..."
|
|
41
|
+
Watobo::Conf.each do |cm|
|
|
42
|
+
cm.update
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
init_workspace_path
|
|
46
|
+
init_active_modules
|
|
47
|
+
init_passive_modules
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def self.working_directory
|
|
51
|
+
# puts "Method Obsolet! use Watobo::Conf::General.working_directory instead."
|
|
52
|
+
Watobo::Conf::General.working_directory
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def self.workspace_path=(new_wsp)
|
|
56
|
+
# puts "Method Obsolet! use Watobo::Conf::General.workspace_path instead."
|
|
57
|
+
Watobo::Conf::General.workspace_path = new_wsp
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def self.workspace_path
|
|
61
|
+
Watobo::Conf::General.workspace_path
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
private
|
|
65
|
+
|
|
66
|
+
def self.init_workspace_path
|
|
67
|
+
# gs = @settings[:general]
|
|
68
|
+
if Conf::General.respond_to? :working_directory
|
|
69
|
+
unless Conf::General.respond_to? :workspace_path
|
|
70
|
+
if File.exist? Conf::General.working_directory
|
|
71
|
+
dir = ''
|
|
72
|
+
dir = Conf::General.workspace_name if Conf::General.respond_to? :workspace_name
|
|
73
|
+
wsp = File.join(Conf::General.working_directory, dir)
|
|
74
|
+
unless File.exist? wsp
|
|
75
|
+
Dir.mkdir(wsp)
|
|
76
|
+
puts "* created workspace folder #{wsp}"
|
|
77
|
+
end
|
|
78
|
+
Conf::General.workspace_path = wsp
|
|
79
|
+
else
|
|
80
|
+
puts "! working directory #{Conf::General.working_directory} does not exist."
|
|
81
|
+
exit
|
|
82
|
+
end
|
|
83
|
+
else
|
|
84
|
+
unless File.exist? Conf::General.workspace_path
|
|
85
|
+
begin
|
|
86
|
+
print "* Create Workspace Directory '#{Conf::General.workspace_path}' .."
|
|
87
|
+
Dir.mkdir(Conf::General.workspace_path)
|
|
88
|
+
print "OK\n"
|
|
89
|
+
rescue => bang
|
|
90
|
+
print "Autsch!\n"
|
|
91
|
+
puts "!!! Could Not Create Workspace Directory"
|
|
92
|
+
exit
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
else
|
|
97
|
+
puts "! working directory not set."
|
|
98
|
+
puts Conf::General.dump.to_yaml
|
|
99
|
+
exit
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def self.init_working_directory
|
|
104
|
+
puts "* init_working_directory ..."
|
|
105
|
+
|
|
106
|
+
watobo_folder = ".watobo"
|
|
107
|
+
watobo_folder = Conf::General.watobo_folder if Conf::General.respond_to? :watobo_folder
|
|
108
|
+
|
|
109
|
+
unless Conf::General.respond_to? :working_directory
|
|
110
|
+
case RUBY_PLATFORM
|
|
111
|
+
|
|
112
|
+
when /mswin|mingw|bccwin/
|
|
113
|
+
|
|
114
|
+
Conf::General.working_directory = File.join(ENV['HOME'], watobo_folder)
|
|
115
|
+
|
|
116
|
+
when /linux|bsd|solaris|hpux|darwin/i
|
|
117
|
+
|
|
118
|
+
Conf::General.working_directory = File.join(ENV['HOME'], watobo_folder)
|
|
119
|
+
|
|
120
|
+
else # cygwin|java
|
|
121
|
+
puts "!!! WATOBO is not tested for this platform (#{RUBY_PLATFORM})!!!"
|
|
122
|
+
exit
|
|
123
|
+
end
|
|
124
|
+
puts ">> " + Conf::General.working_directory
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
unless File.exist? Conf::General.working_directory
|
|
128
|
+
$first_time_watobo = true
|
|
129
|
+
begin
|
|
130
|
+
print "Creating WATOBO's working directory #{Conf::General.working_directory}."
|
|
131
|
+
Dir.mkdir(Conf::General.working_directory)
|
|
132
|
+
rescue => bang
|
|
133
|
+
puts "Could not create working directory for WATOBO."
|
|
134
|
+
puts bang
|
|
135
|
+
puts bang.backtrace if $DEBUG
|
|
136
|
+
exit
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
if File.exist? Conf::General.working_directory
|
|
141
|
+
cfg_dir = File.join(Conf::General.working_directory, "conf")
|
|
142
|
+
unless File.exist? cfg_dir
|
|
143
|
+
puts "* create configuration directory '#{cfg_dir}' ..."
|
|
144
|
+
Dir.mkdir(cfg_dir)
|
|
145
|
+
print "OK\n"
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
end
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# .
|
|
2
|
+
# init_modules.rb
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2012 by siberas, http://www.siberas.de
|
|
5
|
+
#
|
|
6
|
+
# This file is part of WATOBO (Web Application Tool Box)
|
|
7
|
+
# http://watobo.sourceforge.com
|
|
8
|
+
#
|
|
9
|
+
# WATOBO is free software; you can redistribute it and/or modify
|
|
10
|
+
# it under the terms of the GNU General Public License as published by
|
|
11
|
+
# the Free Software Foundation version 2 of the License.
|
|
12
|
+
#
|
|
13
|
+
# WATOBO is distributed in the hope that it will be useful,
|
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
# GNU General Public License for more details.
|
|
17
|
+
#
|
|
18
|
+
# You should have received a copy of the GNU General Public License
|
|
19
|
+
# along with WATOBO; if not, write to the Free Software
|
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
+
# .
|
|
22
|
+
module Watobo
|
|
23
|
+
|
|
24
|
+
private
|
|
25
|
+
def self.init_passive_modules(filter='')
|
|
26
|
+
# puts "get passive modules from path #{@settings[:module_path]}/passive"
|
|
27
|
+
passive_modules = []
|
|
28
|
+
passive_path = Watobo.passive_module_path
|
|
29
|
+
|
|
30
|
+
Dir["#{passive_path}/*.rb"].each do |mod_file|
|
|
31
|
+
begin
|
|
32
|
+
mod = File.basename(mod_file)
|
|
33
|
+
|
|
34
|
+
require mod_file
|
|
35
|
+
# puts "+ #{modules}"
|
|
36
|
+
# load "#{@settings[:module_path]}/#{modules}/#{check}"
|
|
37
|
+
classname = mod.slice(0..0).upcase + mod.slice(1..-1).downcase
|
|
38
|
+
classname.sub!(".rb","")
|
|
39
|
+
|
|
40
|
+
# How to get a class constant out of a string ??? Here we go ...
|
|
41
|
+
|
|
42
|
+
class_constant = Watobo::Modules::Passive.const_get(classname)
|
|
43
|
+
|
|
44
|
+
# passive_modules.push class_constant.new(self)
|
|
45
|
+
passive_modules.push class_constant
|
|
46
|
+
# puts "+ #{classname}"
|
|
47
|
+
# notify(:logger, LOG_DEBUG, "#{modules} loaded.")
|
|
48
|
+
|
|
49
|
+
rescue => bang
|
|
50
|
+
puts "!!!"
|
|
51
|
+
puts bang
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
passive_modules
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def self.init_active_modules()
|
|
58
|
+
|
|
59
|
+
active_path = Watobo.active_module_path
|
|
60
|
+
Dir["#{active_path}/**"].each do |group|
|
|
61
|
+
if File.ftype(group) == "directory"
|
|
62
|
+
Dir["#{group}/*.rb"].each do |mod_file|
|
|
63
|
+
begin
|
|
64
|
+
# module_file = File.join(active_path, group, modules)
|
|
65
|
+
mod = File.basename(mod_file)
|
|
66
|
+
group_name = File.basename(group)# notify(:logger, LOG_DEBUG, "loading module: #{module_file}")
|
|
67
|
+
#require "#{active_path}/#{group}/#{modules}"
|
|
68
|
+
require mod_file
|
|
69
|
+
# load "#{@settings[:module_path]}/#{modules}/#{check}"
|
|
70
|
+
group_class = group_name.slice(0..0).upcase + group_name.slice(1..-1).downcase
|
|
71
|
+
#
|
|
72
|
+
module_class = mod.slice(0..0).upcase + mod.slice(1..-1).downcase
|
|
73
|
+
module_class.sub!(".rb","")
|
|
74
|
+
# How to get a class constant out of a string ??? Here we go ...
|
|
75
|
+
|
|
76
|
+
# class_constant = Watobo.class_eval("Watobo::Modules::Active::#{group_class}::#{module_class}")
|
|
77
|
+
class_constant = Watobo::Modules::Active.const_get(group_class).const_get(module_class)
|
|
78
|
+
#@active_checks.push class_constant.new(self)
|
|
79
|
+
# notify(:logger, LOG_INFO, "#{module_class} loaded.")
|
|
80
|
+
active_checks.push class_constant
|
|
81
|
+
rescue => bang
|
|
82
|
+
puts bang
|
|
83
|
+
# notify(:logger, LOG_DEBUG, "problems loading module: #{@settings[:module_path]}/active/#{group}/#{modules}")
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
end
|
|
89
|
+
active_checks
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def self.createModule(filename)
|
|
93
|
+
begin
|
|
94
|
+
#@interface.log("loading module: /active/#{group}/#{modules}")
|
|
95
|
+
#require "#{@settings[:module_path]}/active/#{group}/#{modules}"
|
|
96
|
+
#require "#{module_path}/#{group}/#{modules}"
|
|
97
|
+
require filename
|
|
98
|
+
# load "#{@settings[:module_path]}/#{modules}/#{check}"
|
|
99
|
+
group_class = group.slice(0..0).upcase + group.slice(1..-1).downcase
|
|
100
|
+
#
|
|
101
|
+
module_class = modules.slice(0..0).upcase + modules.slice(1..-1).downcase
|
|
102
|
+
module_class.sub!(".rb","")
|
|
103
|
+
# How to get a class constant out of a string ??? Here we go ...
|
|
104
|
+
|
|
105
|
+
class_constant = Watobo.class_eval("Watobo::Modules::Active::#{module_class}")
|
|
106
|
+
|
|
107
|
+
@active_modules.push class_constant.new(self)
|
|
108
|
+
#@interface.log("#{modules} loaded.")
|
|
109
|
+
|
|
110
|
+
rescue => bang
|
|
111
|
+
puts bang
|
|
112
|
+
#@interface.log("problems loading module: #{module_path}/#{group}/#{modules}")
|
|
113
|
+
puts "problems loading module: #{filename}"
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# .
|
|
2
|
+
# license_text.rb
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2012 by siberas, http://www.siberas.de
|
|
5
|
+
#
|
|
6
|
+
# This file is part of WATOBO (Web Application Tool Box)
|
|
7
|
+
# http://watobo.sourceforge.com
|
|
8
|
+
#
|
|
9
|
+
# WATOBO is free software; you can redistribute it and/or modify
|
|
10
|
+
# it under the terms of the GNU General Public License as published by
|
|
11
|
+
# the Free Software Foundation version 2 of the License.
|
|
12
|
+
#
|
|
13
|
+
# WATOBO is distributed in the hope that it will be useful,
|
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
# GNU General Public License for more details.
|
|
17
|
+
#
|
|
18
|
+
# You should have received a copy of the GNU General Public License
|
|
19
|
+
# along with WATOBO; if not, write to the Free Software
|
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
+
# .
|
|
22
|
+
module Watobo
|
|
23
|
+
|
|
24
|
+
LICENSE =<<'EOF'
|
|
25
|
+
Copyright 2011 by siberas, http://www.siberas.de
|
|
26
|
+
|
|
27
|
+
Disclaimer: You should only use WATOBO to perform
|
|
28
|
+
vulnerability audits of your own web applications or
|
|
29
|
+
those you are authorized to do so. siberas takes no
|
|
30
|
+
responsibility if you use it for unlawful purposes.
|
|
31
|
+
|
|
32
|
+
WATOBO is free software; you can redistribute it and/or
|
|
33
|
+
modify it under the terms of the GNU General Public
|
|
34
|
+
License as published by the Free Software Foundation
|
|
35
|
+
version 2 of the License.
|
|
36
|
+
|
|
37
|
+
WATOBO is distributed in the hope that it will be useful,
|
|
38
|
+
but WITHOUT ANY WARRANTY; without even the implied
|
|
39
|
+
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
40
|
+
PURPOSE. See the GNU General Public License for more
|
|
41
|
+
details.
|
|
42
|
+
|
|
43
|
+
You should have received a copy of the GNU
|
|
44
|
+
General Public License along with WATOBO; if not,
|
|
45
|
+
write to the Free Software Foundation, Inc., 51
|
|
46
|
+
Franklin St, Fifth Floor, Boston, MA 02110-1301
|
|
47
|
+
USA
|
|
48
|
+
EOF
|
|
49
|
+
|
|
50
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# .
|
|
2
|
+
# framework.rb
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2012 by siberas, http://www.siberas.de
|
|
5
|
+
#
|
|
6
|
+
# This file is part of WATOBO (Web Application Tool Box)
|
|
7
|
+
# http://watobo.sourceforge.com
|
|
8
|
+
#
|
|
9
|
+
# WATOBO is free software; you can redistribute it and/or modify
|
|
10
|
+
# it under the terms of the GNU General Public License as published by
|
|
11
|
+
# the Free Software Foundation version 2 of the License.
|
|
12
|
+
#
|
|
13
|
+
# WATOBO is distributed in the hope that it will be useful,
|
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
# GNU General Public License for more details.
|
|
17
|
+
#
|
|
18
|
+
# You should have received a copy of the GNU General Public License
|
|
19
|
+
# along with WATOBO; if not, write to the Free Software
|
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
+
# .
|
|
22
|
+
%w( init init_modules create_project license_text ).each do |lib|
|
|
23
|
+
require File.join( "watobo", "framework", lib)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# .
|
|
2
|
+
# about_watobo.rb
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2012 by siberas, http://www.siberas.de
|
|
5
|
+
#
|
|
6
|
+
# This file is part of WATOBO (Web Application Tool Box)
|
|
7
|
+
# http://watobo.sourceforge.com
|
|
8
|
+
#
|
|
9
|
+
# WATOBO is free software; you can redistribute it and/or modify
|
|
10
|
+
# it under the terms of the GNU General Public License as published by
|
|
11
|
+
# the Free Software Foundation version 2 of the License.
|
|
12
|
+
#
|
|
13
|
+
# WATOBO is distributed in the hope that it will be useful,
|
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
# GNU General Public License for more details.
|
|
17
|
+
#
|
|
18
|
+
# You should have received a copy of the GNU General Public License
|
|
19
|
+
# along with WATOBO; if not, write to the Free Software
|
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
+
# .
|
|
22
|
+
module Watobo
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
module Gui
|
|
26
|
+
|
|
27
|
+
class AboutWatobo < FXDialogBox
|
|
28
|
+
def initialize(owner)
|
|
29
|
+
super(owner, "About WATOBO", :opts => DECOR_TITLE|DECOR_BORDER|DECOR_CLOSE|DECOR_RESIZE,:width=>600, :height=>600)
|
|
30
|
+
self.icon = Watobo::Gui::Icons::ICON_WATOBO
|
|
31
|
+
@font = FXFont.new(getApp(), "courier", 12, FONTWEIGHT_BOLD)
|
|
32
|
+
|
|
33
|
+
main = FXVerticalFrame.new(self, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_GROOVE, :padding => 0)
|
|
34
|
+
main.backColor = FXColor::White
|
|
35
|
+
#main.verticalScrollBar.setLine(@font.fontHeight)
|
|
36
|
+
header = FXHorizontalFrame.new(main, :opts => LAYOUT_FIX_WIDTH|LAYOUT_FIX_HEIGHT, :width => 590, :height => 100, :padding => 0)
|
|
37
|
+
version = FXHorizontalFrame.new(main, :opts => LAYOUT_FILL_X, :padding => 0)
|
|
38
|
+
version.backColor = FXColor::White
|
|
39
|
+
|
|
40
|
+
version_label = FXLabel.new(version, "Version: #{$version}", nil, :opts => JUSTIFY_CENTER_X|LAYOUT_FILL_X)
|
|
41
|
+
version_label.setFont(FXFont.new(getApp(), "helvetica", 14, FONTWEIGHT_BOLD, FONTSLANT_ITALIC, FONTENCODING_DEFAULT))
|
|
42
|
+
version_label.backColor = FXColor::White
|
|
43
|
+
version_label.justify = JUSTIFY_CENTER_X
|
|
44
|
+
|
|
45
|
+
#lic_frame = FXVerticalFrame.new(main, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y)
|
|
46
|
+
lic_frame = FXScrollWindow.new(main, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y)
|
|
47
|
+
|
|
48
|
+
bottom = FXHorizontalFrame.new(main, :opts => LAYOUT_FILL_X)
|
|
49
|
+
|
|
50
|
+
@imageview = FXImageView.new(header,
|
|
51
|
+
:opts => LAYOUT_FILL_X|LAYOUT_FILL_Y|HSCROLLER_NEVER|VSCROLLER_NEVER)
|
|
52
|
+
|
|
53
|
+
@imageview.image = Watobo::Gui::Icons::WATOBO_LOGO
|
|
54
|
+
|
|
55
|
+
btn = FXButton.new(lic_frame, Watobo::LICENSE,
|
|
56
|
+
:opts => LAYOUT_FIX_WIDTH|LAYOUT_FIX_HEIGHT, :width => 575, :height => 400)
|
|
57
|
+
btn.font = @font
|
|
58
|
+
btn.backColor = FXColor::White
|
|
59
|
+
btn.justify = JUSTIFY_LEFT
|
|
60
|
+
|
|
61
|
+
FXButton.new(bottom, "OK" ,
|
|
62
|
+
:target => self, :selector => FXDialogBox::ID_ACCEPT,
|
|
63
|
+
:opts => BUTTON_NORMAL|LAYOUT_RIGHT)
|
|
64
|
+
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|