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.
Files changed (260) hide show
  1. data/bin/watobo_gui.rb +39 -0
  2. data/certificates/cert.pem +19 -0
  3. data/certificates/privkey.pem +15 -0
  4. data/certificates/watobo_dh.key +5 -0
  5. data/config/datastore.yml +5 -0
  6. data/config/forwarding_proxy.yml +12 -0
  7. data/config/general.yml +4 -0
  8. data/config/gui.yml +23 -0
  9. data/config/interceptor.yml +16 -0
  10. data/config/scan_policy.yml +13 -0
  11. data/config/scanner.yml +34 -0
  12. data/icons/Add.ico +0 -0
  13. data/icons/Add_24x24.ico +0 -0
  14. data/icons/Bandwidth.ico +0 -0
  15. data/icons/Bandwidth_24x24.ico +0 -0
  16. data/icons/Mr. Bomb.ico +0 -0
  17. data/icons/Mr. Bomb_16x16.ico +0 -0
  18. data/icons/Mr. Bomb_24x24.ico +0 -0
  19. data/icons/Orange Ball.ico +0 -0
  20. data/icons/Orange Ball_16x16.ico +0 -0
  21. data/icons/Orange Ball_24x24.ico +0 -0
  22. data/icons/Pause.ico +0 -0
  23. data/icons/Play.ico +0 -0
  24. data/icons/Play_24x24.ico +0 -0
  25. data/icons/Red Ball.ico +0 -0
  26. data/icons/Red Ball_16x16.ico +0 -0
  27. data/icons/Red Ball_24x24.ico +0 -0
  28. data/icons/Run.ico +0 -0
  29. data/icons/Stop.ico +0 -0
  30. data/icons/Stop_24x24.ico +0 -0
  31. data/icons/Terminal.ico +0 -0
  32. data/icons/Transfer.ico +0 -0
  33. data/icons/Transfer_16x16.ico +0 -0
  34. data/icons/User.ico +0 -0
  35. data/icons/User_16x16.ico +0 -0
  36. data/icons/User_24x24.ico +0 -0
  37. data/icons/Web Browser.ico +0 -0
  38. data/icons/Web Browser_16x16.ico +0 -0
  39. data/icons/Write Document.ico +0 -0
  40. data/icons/Yellow Ball.ico +0 -0
  41. data/icons/Yellow Ball_16x16.ico +0 -0
  42. data/icons/Yellow Ball_24x24.ico +0 -0
  43. data/icons/advanced.ico +0 -0
  44. data/icons/advanced_16x16.ico +0 -0
  45. data/icons/advanced_24x24.ico +0 -0
  46. data/icons/applications.ico +0 -0
  47. data/icons/applications_16x16.ico +0 -0
  48. data/icons/applications_24x24.ico +0 -0
  49. data/icons/browser_16x16.ico +0 -0
  50. data/icons/browser_24x24.ico +0 -0
  51. data/icons/burn.ico +0 -0
  52. data/icons/burn_16x16.ico +0 -0
  53. data/icons/burn_24x24.ico +0 -0
  54. data/icons/calculator.ico +0 -0
  55. data/icons/calculator_24x24.ico +0 -0
  56. data/icons/cb_checked.ico +0 -0
  57. data/icons/cb_checked_orange.ico +0 -0
  58. data/icons/cb_unchecked.ico +0 -0
  59. data/icons/coin_24x24.ico +0 -0
  60. data/icons/conversation.ico +0 -0
  61. data/icons/conversation_24x24.ico +0 -0
  62. data/icons/engine.ico +0 -0
  63. data/icons/filter.ico +0 -0
  64. data/icons/folder.ico +0 -0
  65. data/icons/folder_16x16.ico +0 -0
  66. data/icons/fuzzer_16x16.ico +0 -0
  67. data/icons/fuzzer_24x24.ico +0 -0
  68. data/icons/go-down_16x16.png +0 -0
  69. data/icons/go-up_16x16.png +0 -0
  70. data/icons/help.ico +0 -0
  71. data/icons/help_16x16.ico +0 -0
  72. data/icons/help_24x24.ico +0 -0
  73. data/icons/iChat.ico +0 -0
  74. data/icons/iChat_16x16.ico +0 -0
  75. data/icons/iChat_24x24.ico +0 -0
  76. data/icons/icons.txt +3 -0
  77. data/icons/info.ico +0 -0
  78. data/icons/info_16x16.ico +0 -0
  79. data/icons/info_24x24.ico +0 -0
  80. data/icons/interceptor_24x24.ico +0 -0
  81. data/icons/lock.ico +0 -0
  82. data/icons/lock_12x12.ico +0 -0
  83. data/icons/lock_16x16.ico +0 -0
  84. data/icons/monitor.ico +0 -0
  85. data/icons/plugin.ico +0 -0
  86. data/icons/plugin_24x24.ico +0 -0
  87. data/icons/scan_16x16.png +0 -0
  88. data/icons/send.ico +0 -0
  89. data/icons/server.ico +0 -0
  90. data/icons/server_16x16.ico +0 -0
  91. data/icons/siberas_logo_x24.gif +0 -0
  92. data/icons/tag_blue_32x32.ico +0 -0
  93. data/icons/watobo-48x48.png +0 -0
  94. data/icons/watobo-logo.png +0 -0
  95. data/icons/watobo.ico +0 -0
  96. data/lib/watobo/adapters/data_store.rb +38 -0
  97. data/lib/watobo/adapters/file/file_store.rb +211 -0
  98. data/lib/watobo/adapters/session_store.rb +27 -0
  99. data/lib/watobo/adapters.rb +26 -0
  100. data/lib/watobo/config.rb +143 -0
  101. data/lib/watobo/constants.rb +92 -0
  102. data/lib/watobo/core/active_check.rb +404 -0
  103. data/lib/watobo/core/cookie.rb +69 -0
  104. data/lib/watobo/core/fuzz_gen.rb +160 -0
  105. data/lib/watobo/core/http_socket.rb +142 -0
  106. data/lib/watobo/core/interceptor.rb +729 -0
  107. data/lib/watobo/core/passive_check.rb +141 -0
  108. data/lib/watobo/core/project.rb +1058 -0
  109. data/lib/watobo/core/scanner.rb +396 -0
  110. data/lib/watobo/core/session.rb +1320 -0
  111. data/lib/watobo/core/simple_ca.rb +393 -0
  112. data/lib/watobo/core.rb +34 -0
  113. data/lib/watobo/defaults.rb +40 -0
  114. data/lib/watobo/external/diff/lcs/array.rb +42 -0
  115. data/lib/watobo/external/diff/lcs/block.rb +72 -0
  116. data/lib/watobo/external/diff/lcs/callbacks.rb +343 -0
  117. data/lib/watobo/external/diff/lcs/change.rb +190 -0
  118. data/lib/watobo/external/diff/lcs/hunk.rb +279 -0
  119. data/lib/watobo/external/diff/lcs/ldiff.rb +247 -0
  120. data/lib/watobo/external/diff/lcs/string.rb +40 -0
  121. data/lib/watobo/external/diff/lcs.rb +1124 -0
  122. data/lib/watobo/external/ntlm/ntlm.rb +797 -0
  123. data/lib/watobo/externals.rb +28 -0
  124. data/lib/watobo/framework/create_project.rb +55 -0
  125. data/lib/watobo/framework/init.rb +149 -0
  126. data/lib/watobo/framework/init_modules.rb +116 -0
  127. data/lib/watobo/framework/license_text.rb +50 -0
  128. data/lib/watobo/framework.rb +26 -0
  129. data/lib/watobo/gui/about_watobo.rb +68 -0
  130. data/lib/watobo/gui/browser_preview.rb +460 -0
  131. data/lib/watobo/gui/certificate_dialog.rb +132 -0
  132. data/lib/watobo/gui/chat_diff.rb +415 -0
  133. data/lib/watobo/gui/chatviewer_frame.rb +427 -0
  134. data/lib/watobo/gui/checkboxtree.rb +221 -0
  135. data/lib/watobo/gui/checks_policy_frame.rb +123 -0
  136. data/lib/watobo/gui/client_cert_dialog.rb +227 -0
  137. data/lib/watobo/gui/confirm_scan_dialog.rb +67 -0
  138. data/lib/watobo/gui/conversation_table.rb +386 -0
  139. data/lib/watobo/gui/conversation_table_ctrl.rb +175 -0
  140. data/lib/watobo/gui/csrf_token_dialog.rb +446 -0
  141. data/lib/watobo/gui/dashboard.rb +341 -0
  142. data/lib/watobo/gui/define_scope_frame.rb +380 -0
  143. data/lib/watobo/gui/edit_comment.rb +70 -0
  144. data/lib/watobo/gui/edit_scope_dialog.rb +69 -0
  145. data/lib/watobo/gui/finding_info.rb +212 -0
  146. data/lib/watobo/gui/findings_tree.rb +459 -0
  147. data/lib/watobo/gui/full_scan_dialog.rb +269 -0
  148. data/lib/watobo/gui/fuzzer_gui.rb +1522 -0
  149. data/lib/watobo/gui/hex_viewer.rb +106 -0
  150. data/lib/watobo/gui/interceptor_gui.rb +994 -0
  151. data/lib/watobo/gui/interceptor_settings_dialog.rb +201 -0
  152. data/lib/watobo/gui/log_viewer.rb +97 -0
  153. data/lib/watobo/gui/login_wizzard.rb +301 -0
  154. data/lib/watobo/gui/main_window.rb +1815 -0
  155. data/lib/watobo/gui/manual_request_editor.rb +1105 -0
  156. data/lib/watobo/gui/master_pw_dialog.rb +142 -0
  157. data/lib/watobo/gui/password_policy_dialog.rb +98 -0
  158. data/lib/watobo/gui/plugin/base.rb +82 -0
  159. data/lib/watobo/gui/plugin_board.rb +95 -0
  160. data/lib/watobo/gui/preferences_dialog.rb +116 -0
  161. data/lib/watobo/gui/progress_window.rb +102 -0
  162. data/lib/watobo/gui/project_wizzard.rb +369 -0
  163. data/lib/watobo/gui/proxy_dialog.rb +550 -0
  164. data/lib/watobo/gui/quick_scan_dialog.rb +242 -0
  165. data/lib/watobo/gui/request_editor.rb +480 -0
  166. data/lib/watobo/gui/save_chat_dialog.rb +158 -0
  167. data/lib/watobo/gui/scanner_settings_dialog.rb +360 -0
  168. data/lib/watobo/gui/select_chat_dialog.rb +169 -0
  169. data/lib/watobo/gui/session_management_dialog.rb +688 -0
  170. data/lib/watobo/gui/sites_tree.rb +347 -0
  171. data/lib/watobo/gui/status_bar.rb +88 -0
  172. data/lib/watobo/gui/table_editor.rb +445 -0
  173. data/lib/watobo/gui/tagless_viewer.rb +62 -0
  174. data/lib/watobo/gui/templates/plugin.rb +80 -0
  175. data/lib/watobo/gui/templates/plugin2.rb +103 -0
  176. data/lib/watobo/gui/text_viewer.rb +247 -0
  177. data/lib/watobo/gui/transcoder_window.rb +215 -0
  178. data/lib/watobo/gui/utils/gui_utils.rb +129 -0
  179. data/lib/watobo/gui/utils/init_icons.rb +106 -0
  180. data/lib/watobo/gui/utils/load_icons.rb +54 -0
  181. data/lib/watobo/gui/utils/load_plugins.rb +94 -0
  182. data/lib/watobo/gui/utils/master_password.rb +90 -0
  183. data/lib/watobo/gui/utils/save_default_settings.rb +99 -0
  184. data/lib/watobo/gui/utils/save_project_settings.rb +21 -0
  185. data/lib/watobo/gui/utils/save_proxy_settings.rb +45 -0
  186. data/lib/watobo/gui/utils/save_session_settings.rb +21 -0
  187. data/lib/watobo/gui/utils/session_history.rb +134 -0
  188. data/lib/watobo/gui/workspace_dialog.rb +89 -0
  189. data/lib/watobo/gui/www_auth_dialog.rb +348 -0
  190. data/lib/watobo/gui/xml_viewer_frame.rb +114 -0
  191. data/lib/watobo/gui.rb +139 -0
  192. data/lib/watobo/mixins/httpparser.rb +664 -0
  193. data/lib/watobo/mixins/request_parser.rb +210 -0
  194. data/lib/watobo/mixins/shapers.rb +345 -0
  195. data/lib/watobo/mixins/transcoders.rb +88 -0
  196. data/lib/watobo/mixins.rb +32 -0
  197. data/lib/watobo/utils/check_regex.rb +36 -0
  198. data/lib/watobo/utils/copy_object.rb +29 -0
  199. data/lib/watobo/utils/crypto.rb +74 -0
  200. data/lib/watobo/utils/expand_range.rb +45 -0
  201. data/lib/watobo/utils/file_management.rb +73 -0
  202. data/lib/watobo/utils/load_chat.rb +219 -0
  203. data/lib/watobo/utils/load_icon.rb +47 -0
  204. data/lib/watobo/utils/print_debug.rb +34 -0
  205. data/lib/watobo/utils/response_hash.rb +143 -0
  206. data/lib/watobo/utils/secure_eval.rb +57 -0
  207. data/lib/watobo/utils/text2request.rb +96 -0
  208. data/lib/watobo/utils.rb +32 -0
  209. data/lib/watobo.rb +76 -0
  210. data/modules/active/Apache/mod_status.rb +123 -0
  211. data/modules/active/Flash/crossdomain.rb +102 -0
  212. data/modules/active/directories/dirwalker.rb +89 -0
  213. data/modules/active/discovery/fileextensions.rb +151 -0
  214. data/modules/active/discovery/http_methods.rb +135 -0
  215. data/modules/active/domino/domino_db.lst +164 -0
  216. data/modules/active/domino/domino_db.rb +128 -0
  217. data/modules/active/fileinclusion/lfi_simple.rb +134 -0
  218. data/modules/active/jboss/jboss_basic.rb +119 -0
  219. data/modules/active/sap/business_objects.rb +73 -0
  220. data/modules/active/sap/its_commands.rb +101 -0
  221. data/modules/active/sap/its_service_parameter.rb +105 -0
  222. data/modules/active/sap/its_services.rb +103 -0
  223. data/modules/active/sap/its_xss.rb +98 -0
  224. data/modules/active/sqlinjection/sql_boolean.rb +262 -0
  225. data/modules/active/sqlinjection/sqli_simple.rb +205 -0
  226. data/modules/active/xss/xss_simple.rb +179 -0
  227. data/modules/passive/cookie_options.rb +97 -0
  228. data/modules/passive/cookie_xss.rb +85 -0
  229. data/modules/passive/detect_code.rb +89 -0
  230. data/modules/passive/detect_fileupload.rb +80 -0
  231. data/modules/passive/detect_infrastructure.rb +98 -0
  232. data/modules/passive/detect_one_time_tokens.rb +86 -0
  233. data/modules/passive/dirindexing.rb +81 -0
  234. data/modules/passive/disclosure_emails.rb +82 -0
  235. data/modules/passive/disclosure_ipaddr.rb +87 -0
  236. data/modules/passive/filename_as_parameter.rb +85 -0
  237. data/modules/passive/form_spotter.rb +75 -0
  238. data/modules/passive/hotspots.rb +86 -0
  239. data/modules/passive/in_script_parameter.rb +92 -0
  240. data/modules/passive/multiple_server_headers.rb +98 -0
  241. data/modules/passive/possible_login.rb +134 -0
  242. data/modules/passive/redirect_url.rb +88 -0
  243. data/modules/passive/redirectionz.rb +96 -0
  244. data/modules/passive/xss_dom.rb +91 -0
  245. data/plugins/catalog/catalog.ico +0 -0
  246. data/plugins/catalog/catalog.rb +726 -0
  247. data/plugins/catalog/db_tests +6483 -0
  248. data/plugins/catalog/db_variables +29 -0
  249. data/plugins/filefinder/dbs/hbci.db +12 -0
  250. data/plugins/filefinder/filefinder.rb +602 -0
  251. data/plugins/sslchecker/cli/sslchecker_cli.rb +21 -0
  252. data/plugins/sslchecker/gui/cipher_table.rb +260 -0
  253. data/plugins/sslchecker/gui/gui.rb +245 -0
  254. data/plugins/sslchecker/gui/sslchecker.rb +26 -0
  255. data/plugins/sslchecker/icons/green_16x16.ico +0 -0
  256. data/plugins/sslchecker/icons/grey_16x16.ico +0 -0
  257. data/plugins/sslchecker/icons/red_16x16.ico +0 -0
  258. data/plugins/sslchecker/icons/sslchecker.ico +0 -0
  259. data/plugins/sslchecker/lib/check.rb +117 -0
  260. 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