watobo 0.9.21 → 0.9.23

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 (283) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +46 -1
  3. data/bin/nfq_server.rb +0 -9
  4. data/bin/watobo_gui.rb +3 -13
  5. data/custom-views/prettify-json.rb +9 -18
  6. data/icons/watobo.ico +0 -0
  7. data/icons/watobo.ico.old +0 -0
  8. data/lib/watobo.rb +10 -19
  9. data/lib/watobo/adapters.rb +5 -14
  10. data/lib/watobo/adapters/data_store.rb +50 -59
  11. data/lib/watobo/adapters/file/file_store.rb +287 -296
  12. data/lib/watobo/adapters/file/marshal_store.rb +293 -296
  13. data/lib/watobo/adapters/session_store.rb +5 -14
  14. data/lib/watobo/ca.rb +1 -10
  15. data/lib/watobo/config.rb +197 -206
  16. data/lib/watobo/constants.rb +0 -9
  17. data/lib/watobo/core.rb +3 -12
  18. data/lib/watobo/core/active_check.rb +72 -135
  19. data/lib/watobo/core/active_checks.rb +49 -58
  20. data/lib/watobo/core/ca.rb +369 -389
  21. data/lib/watobo/core/cert_store.rb +34 -43
  22. data/lib/watobo/core/chat.rb +92 -101
  23. data/lib/watobo/core/chats.rb +271 -280
  24. data/lib/watobo/core/client_cert_store.rb +106 -35
  25. data/lib/watobo/core/conversation.rb +48 -57
  26. data/lib/watobo/core/cookie.rb +23 -32
  27. data/lib/watobo/core/egress_handlers.rb +98 -0
  28. data/lib/watobo/core/finding.rb +66 -75
  29. data/lib/watobo/core/findings.rb +107 -114
  30. data/lib/watobo/core/forwarding_proxy.rb +13 -22
  31. data/lib/watobo/core/fuzz_gen.rb +0 -9
  32. data/lib/watobo/core/intercept_carver.rb +166 -177
  33. data/lib/watobo/core/intercept_filter.rb +235 -244
  34. data/lib/watobo/core/interceptor.rb +98 -107
  35. data/lib/watobo/core/min_class.rb +4 -13
  36. data/lib/watobo/core/netfilter_queue.rb +170 -179
  37. data/lib/watobo/core/ott_cache.rb +132 -141
  38. data/lib/watobo/core/parameter.rb +43 -52
  39. data/lib/watobo/core/passive_check.rb +103 -102
  40. data/lib/watobo/core/passive_checks.rb +48 -57
  41. data/lib/watobo/core/passive_scanner.rb +54 -55
  42. data/lib/watobo/core/plugin.rb +11 -20
  43. data/lib/watobo/core/project.rb +3 -9
  44. data/lib/watobo/core/proxy.rb +43 -52
  45. data/lib/watobo/core/request.rb +125 -123
  46. data/lib/watobo/core/response.rb +44 -53
  47. data/lib/watobo/core/scanner.rb +0 -9
  48. data/lib/watobo/core/scanner3.rb +405 -414
  49. data/lib/watobo/core/scope.rb +83 -92
  50. data/lib/watobo/core/session.rb +1043 -1026
  51. data/lib/watobo/core/sid_cache.rb +98 -107
  52. data/lib/watobo/core/subscriber.rb +25 -34
  53. data/lib/watobo/defaults.rb +21 -30
  54. data/lib/watobo/external/diff/lcs.rb +0 -9
  55. data/lib/watobo/external/diff/lcs/array.rb +0 -9
  56. data/lib/watobo/external/diff/lcs/block.rb +0 -9
  57. data/lib/watobo/external/diff/lcs/callbacks.rb +0 -9
  58. data/lib/watobo/external/diff/lcs/change.rb +0 -9
  59. data/lib/watobo/external/diff/lcs/hunk.rb +0 -9
  60. data/lib/watobo/external/diff/lcs/ldiff.rb +0 -9
  61. data/lib/watobo/external/diff/lcs/string.rb +0 -9
  62. data/lib/watobo/externals.rb +6 -15
  63. data/lib/watobo/framework.rb +4 -13
  64. data/lib/watobo/framework/create_project.rb +60 -69
  65. data/lib/watobo/framework/init.rb +0 -9
  66. data/lib/watobo/framework/init_modules.rb +0 -9
  67. data/lib/watobo/framework/license_text.rb +28 -37
  68. data/lib/watobo/framework/load_chat.rb +13 -22
  69. data/lib/watobo/gui.rb +132 -123
  70. data/lib/watobo/gui/about_watobo.rb +0 -9
  71. data/lib/watobo/gui/browser_preview.rb +0 -9
  72. data/lib/watobo/gui/certificate_dialog.rb +0 -9
  73. data/lib/watobo/gui/chat_diff.rb +0 -9
  74. data/lib/watobo/gui/chatviewer_frame.rb +73 -72
  75. data/lib/watobo/gui/checkboxtree.rb +0 -9
  76. data/lib/watobo/gui/checks_policy_frame.rb +0 -9
  77. data/lib/watobo/gui/client_cert_dialog.rb +96 -87
  78. data/lib/watobo/gui/confirm_scan_dialog.rb +0 -9
  79. data/lib/watobo/gui/conversation_table.rb +158 -164
  80. data/lib/watobo/gui/conversation_table_ctrl.rb +207 -216
  81. data/lib/watobo/gui/conversation_table_ctrl2.rb +373 -382
  82. data/lib/watobo/gui/csrf_token_dialog.rb +0 -9
  83. data/lib/watobo/gui/custom_viewer.rb +374 -383
  84. data/lib/watobo/gui/dashboard.rb +296 -303
  85. data/lib/watobo/gui/define_scope_frame.rb +0 -9
  86. data/lib/watobo/gui/differ_frame.rb +215 -224
  87. data/lib/watobo/gui/edit_comment.rb +0 -9
  88. data/lib/watobo/gui/edit_scope_dialog.rb +0 -9
  89. data/lib/watobo/gui/export_dialog.rb +104 -113
  90. data/lib/watobo/gui/finding_info.rb +0 -9
  91. data/lib/watobo/gui/findings_tree.rb +210 -217
  92. data/lib/watobo/gui/full_scan_dialog.rb +0 -9
  93. data/lib/watobo/gui/fuzzer_gui.rb +1295 -1313
  94. data/lib/watobo/gui/fxsave_thread.rb +14 -0
  95. data/lib/watobo/gui/goto_url_dialog.rb +70 -79
  96. data/lib/watobo/gui/hex_viewer.rb +0 -9
  97. data/lib/watobo/gui/html_viewer.rb +287 -296
  98. data/lib/watobo/gui/intercept_filter_dialog.rb +188 -197
  99. data/lib/watobo/gui/interceptor_gui.rb +1041 -1051
  100. data/lib/watobo/gui/interceptor_settings_dialog.rb +0 -9
  101. data/lib/watobo/gui/json_viewer.rb +287 -0
  102. data/lib/watobo/gui/list_box.rb +101 -110
  103. data/lib/watobo/gui/log_file_viewer.rb +32 -41
  104. data/lib/watobo/gui/log_viewer.rb +83 -88
  105. data/lib/watobo/gui/login_wizzard.rb +0 -9
  106. data/lib/watobo/gui/main_window.rb +587 -618
  107. data/lib/watobo/gui/manual_request_editor.rb +620 -565
  108. data/lib/watobo/gui/master_pw_dialog.rb +0 -9
  109. data/lib/watobo/gui/mixins/gui_settings.rb +29 -38
  110. data/lib/watobo/gui/page_tree.rb +217 -226
  111. data/lib/watobo/gui/password_policy_dialog.rb +0 -9
  112. data/lib/watobo/gui/plugin_board.rb +0 -9
  113. data/lib/watobo/gui/preferences_dialog.rb +0 -9
  114. data/lib/watobo/gui/progress_window.rb +17 -27
  115. data/lib/watobo/gui/project_wizzard.rb +0 -9
  116. data/lib/watobo/gui/proxy_dialog.rb +1 -10
  117. data/lib/watobo/gui/quick_scan_dialog.rb +0 -9
  118. data/lib/watobo/gui/request_builder_frame.rb +102 -111
  119. data/lib/watobo/gui/request_editor.rb +181 -137
  120. data/lib/watobo/gui/rewrite_filters_dialog.rb +394 -403
  121. data/lib/watobo/gui/rewrite_rules_dialog.rb +372 -381
  122. data/lib/watobo/gui/save_chat_dialog.rb +140 -149
  123. data/lib/watobo/gui/scanner_settings_dialog.rb +0 -9
  124. data/lib/watobo/gui/select_chat_dialog.rb +0 -9
  125. data/lib/watobo/gui/session_management_dialog.rb +0 -9
  126. data/lib/watobo/gui/sites_tree.rb +0 -9
  127. data/lib/watobo/gui/status_bar.rb +0 -9
  128. data/lib/watobo/gui/table_editor.rb +0 -9
  129. data/lib/watobo/gui/tagless_viewer.rb +0 -9
  130. data/lib/watobo/gui/templates/plugin.rb +0 -9
  131. data/lib/watobo/gui/templates/plugin2.rb +92 -100
  132. data/lib/watobo/gui/templates/plugin_base.rb +144 -153
  133. data/lib/watobo/gui/text_viewer.rb +0 -9
  134. data/lib/watobo/gui/transcoder_window.rb +0 -9
  135. data/lib/watobo/gui/utils/gui_utils.rb +0 -9
  136. data/lib/watobo/gui/utils/init_icons.rb +86 -95
  137. data/lib/watobo/gui/utils/load_icons.rb +33 -42
  138. data/lib/watobo/gui/utils/load_plugins.rb +116 -119
  139. data/lib/watobo/gui/utils/master_password.rb +68 -77
  140. data/lib/watobo/gui/utils/save_default_settings.rb +113 -122
  141. data/lib/watobo/gui/utils/save_project_settings.rb +0 -9
  142. data/lib/watobo/gui/utils/save_proxy_settings.rb +41 -50
  143. data/lib/watobo/gui/utils/save_scanner_settings.rb +18 -27
  144. data/lib/watobo/gui/utils/session_history.rb +112 -121
  145. data/lib/watobo/gui/workspace_dialog.rb +0 -9
  146. data/lib/watobo/gui/www_auth_dialog.rb +0 -9
  147. data/lib/watobo/gui/xml_viewer_frame.rb +0 -9
  148. data/lib/watobo/http.rb +4 -13
  149. data/lib/watobo/http/cookies/cookies.rb +26 -35
  150. data/lib/watobo/http/data/data.rb +45 -54
  151. data/lib/watobo/http/data/json.rb +47 -55
  152. data/lib/watobo/http/url/url.rb +38 -47
  153. data/lib/watobo/http/xml/xml.rb +124 -130
  154. data/lib/watobo/interceptor.rb +3 -12
  155. data/lib/watobo/interceptor/proxy.rb +742 -739
  156. data/lib/watobo/interceptor/transparent.rb +22 -24
  157. data/lib/watobo/mixins.rb +10 -19
  158. data/lib/watobo/mixins/check_info.rb +27 -36
  159. data/lib/watobo/mixins/httpparser.rb +613 -637
  160. data/lib/watobo/mixins/request_parser.rb +88 -97
  161. data/lib/watobo/mixins/shapers.rb +515 -529
  162. data/lib/watobo/mixins/transcoders.rb +3 -11
  163. data/lib/watobo/parser.rb +1 -10
  164. data/lib/watobo/parser/html.rb +83 -92
  165. data/lib/watobo/patch_fxruby_setfocus.rb +26 -0
  166. data/lib/watobo/sockets.rb +3 -12
  167. data/lib/watobo/sockets/agent.rb +828 -837
  168. data/lib/watobo/sockets/client_socket.rb +308 -312
  169. data/lib/watobo/sockets/connection.rb +401 -410
  170. data/lib/watobo/sockets/http_socket.rb +11 -13
  171. data/lib/watobo/sockets/ntlm_auth.rb +129 -138
  172. data/lib/watobo/utils.rb +10 -19
  173. data/lib/watobo/utils/check_regex.rb +0 -9
  174. data/lib/watobo/utils/copy_object.rb +0 -9
  175. data/lib/watobo/utils/crypto.rb +0 -9
  176. data/lib/watobo/utils/expand_range.rb +23 -32
  177. data/lib/watobo/utils/export_xml.rb +97 -106
  178. data/lib/watobo/utils/file_management.rb +9 -11
  179. data/lib/watobo/utils/hexprint.rb +9 -18
  180. data/lib/watobo/utils/load_chat.rb +0 -9
  181. data/lib/watobo/utils/load_icon.rb +0 -9
  182. data/lib/watobo/utils/ntlm.rb +866 -875
  183. data/lib/watobo/utils/print_debug.rb +12 -21
  184. data/lib/watobo/utils/response_builder.rb +90 -99
  185. data/lib/watobo/utils/response_hash.rb +0 -9
  186. data/lib/watobo/utils/secure_eval.rb +0 -9
  187. data/lib/watobo/utils/strings.rb +10 -19
  188. data/lib/watobo/utils/text2request.rb +0 -9
  189. data/lib/watobo/utils/url.rb +23 -32
  190. data/lib/watobo/utils/utf16.rb +11 -20
  191. data/modules/active/Apache/mod_status.rb +0 -9
  192. data/modules/active/Apache/multiview.rb +151 -160
  193. data/modules/active/Flash/crossdomain.rb +0 -9
  194. data/modules/active/JWT/jwt_oauth2_none.rb +111 -0
  195. data/modules/active/cq5/cq5_default_selectors.rb +106 -115
  196. data/modules/active/cq5/cqp_user_enumeration.rb +125 -134
  197. data/modules/active/directories/dirwalker.rb +0 -9
  198. data/modules/active/discovery/fileextensions.rb +0 -9
  199. data/modules/active/discovery/http_methods.rb +0 -9
  200. data/modules/active/discovery/jsmapfiles.rb +79 -0
  201. data/modules/active/domino/domino_db.rb +68 -76
  202. data/modules/active/dotNET/custom_errors.rb +102 -111
  203. data/modules/active/dotNET/dotnet_files.rb +90 -99
  204. data/modules/active/fileinclusion/lfi_simple.rb +0 -9
  205. data/modules/active/jboss/jboss_basic.rb +0 -9
  206. data/modules/active/sap/business_objects.rb +51 -60
  207. data/modules/active/sap/its_commands.rb +0 -9
  208. data/modules/active/sap/its_service_parameter.rb +0 -9
  209. data/modules/active/sap/its_services.rb +0 -9
  210. data/modules/active/sap/its_xss.rb +0 -9
  211. data/modules/active/shell_shock/shell_shock.rb +139 -148
  212. data/modules/active/siebel/siebel_apps.rb +160 -169
  213. data/modules/active/sqlinjection/sql_boolean.rb +0 -9
  214. data/modules/active/sqlinjection/sql_numerical.rb +198 -0
  215. data/modules/active/sqlinjection/sqli_error.rb +0 -9
  216. data/modules/active/sqlinjection/sqli_timing.rb +220 -229
  217. data/modules/active/struts2/default_handler_ognl.rb +106 -115
  218. data/modules/active/struts2/include_params_ognl.rb +105 -114
  219. data/modules/active/xml/xml_xxe.rb +112 -123
  220. data/modules/active/xss/xss_ng.rb +214 -223
  221. data/modules/active/xss/xss_simple.rb +0 -9
  222. data/modules/passive/ajax.rb +68 -77
  223. data/modules/passive/autocomplete.rb +56 -65
  224. data/modules/passive/cookie_options.rb +0 -9
  225. data/modules/passive/cookie_xss.rb +0 -9
  226. data/modules/passive/detect_code.rb +0 -9
  227. data/modules/passive/detect_fileupload.rb +0 -9
  228. data/modules/passive/detect_infrastructure.rb +0 -9
  229. data/modules/passive/detect_one_time_tokens.rb +0 -9
  230. data/modules/passive/dirindexing.rb +0 -9
  231. data/modules/passive/disclosure_domino.rb +55 -64
  232. data/modules/passive/disclosure_emails.rb +0 -9
  233. data/modules/passive/disclosure_ipaddr.rb +55 -53
  234. data/modules/passive/filename_as_parameter.rb +0 -9
  235. data/modules/passive/form_spotter.rb +0 -9
  236. data/modules/passive/hidden_fields.rb +50 -59
  237. data/modules/passive/hotspots.rb +0 -9
  238. data/modules/passive/in_script_parameter.rb +0 -9
  239. data/modules/passive/json_web_token.rb +93 -0
  240. data/modules/passive/multiple_server_headers.rb +0 -9
  241. data/modules/passive/possible_login.rb +0 -9
  242. data/modules/passive/redirect_url.rb +0 -9
  243. data/modules/passive/redirectionz.rb +0 -9
  244. data/modules/passive/sap-headers.rb +56 -65
  245. data/modules/passive/xss_dom.rb +0 -9
  246. data/plugins/aem/aem.rb +11 -20
  247. data/plugins/aem/gui/main.rb +118 -127
  248. data/plugins/aem/gui/tree_view.rb +171 -180
  249. data/plugins/aem/lib/agent.rb +130 -138
  250. data/plugins/aem/lib/dispatcher.rb +45 -51
  251. data/plugins/aem/lib/engine.rb +177 -186
  252. data/plugins/catalog/catalog.rb +345 -355
  253. data/plugins/crawler/crawler.rb +4 -13
  254. data/plugins/crawler/gui.rb +5 -14
  255. data/plugins/crawler/gui/auth_frame.rb +270 -279
  256. data/plugins/crawler/gui/crawler_gui.rb +271 -276
  257. data/plugins/crawler/gui/general_settings_frame.rb +96 -105
  258. data/plugins/crawler/gui/hooks_frame.rb +80 -89
  259. data/plugins/crawler/gui/scope_frame.rb +50 -59
  260. data/plugins/crawler/gui/settings_tabbook.rb +38 -47
  261. data/plugins/crawler/gui/status_frame.rb +59 -68
  262. data/plugins/crawler/lib/bags.rb +18 -27
  263. data/plugins/crawler/lib/constants.rb +11 -20
  264. data/plugins/crawler/lib/engine.rb +488 -497
  265. data/plugins/crawler/lib/grabber.rb +68 -77
  266. data/plugins/crawler/lib/status.rb +71 -80
  267. data/plugins/crawler/lib/uri_mp.rb +12 -21
  268. data/plugins/filefinder/filefinder.rb +326 -333
  269. data/plugins/sqlmap/bin/test.rb +78 -87
  270. data/plugins/sqlmap/gui.rb +4 -13
  271. data/plugins/sqlmap/gui/main.rb +218 -227
  272. data/plugins/sqlmap/gui/options_frame.rb +97 -106
  273. data/plugins/sqlmap/lib/sqlmap_ctrl.rb +90 -100
  274. data/plugins/sqlmap/sqlmap.rb +2 -11
  275. data/plugins/sslchecker/cli/sslchecker_cli.rb +0 -9
  276. data/plugins/sslchecker/gui/cipher_table.rb +246 -254
  277. data/plugins/sslchecker/gui/gui.rb +258 -264
  278. data/plugins/sslchecker/gui/sslchecker.rb +4 -13
  279. data/plugins/sslchecker/lib/check.rb +127 -133
  280. data/plugins/wshell/gui/main.rb +119 -117
  281. data/plugins/wshell/lib/core.rb +38 -88
  282. data/plugins/wshell/wshell.rb +11 -20
  283. metadata +170 -164
@@ -1,129 +1,120 @@
1
- #.
2
- # save_default_settings.rb
3
- #.
4
- # Copyright 2014 by siberas, http://www.siberas.de
5
- # This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
6
- # WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
7
- # WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
8
- # You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
9
-
10
1
  # @private
11
- module Watobo#:nodoc: all
12
-
13
- module Gui
14
- def self.save_settings()
2
+ module Watobo#:nodoc: all
3
+
4
+ module Gui
5
+ def self.save_settings()
15
6
  begin
16
- puts "SAVE SETTINGS"
17
-
18
- mp = ''
19
- save_pws = false
20
-
21
- # puts "= Master Password Settings ="
22
- # puts Watobo::Gui::MasterPW.settings.to_yaml
23
-
24
- if Watobo::Gui::MasterPW.save_passwords?
25
- save_pws = true
26
- unless Watobo::Gui::MasterPW.set?
27
- save_pws = false unless Watobo::Gui::MasterPW.save_without_master?
28
- end
29
- end
30
-
31
- Watobo.save_proxy_settings( :save_passwords => save_pws, :key => mp )
32
-
7
+ puts "SAVE SETTINGS"
8
+
9
+ mp = ''
10
+ save_pws = false
11
+
12
+ # puts "= Master Password Settings ="
13
+ # puts Watobo::Gui::MasterPW.settings.to_yaml
14
+
15
+ if Watobo::Gui::MasterPW.save_passwords?
16
+ save_pws = true
17
+ unless Watobo::Gui::MasterPW.set?
18
+ save_pws = false unless Watobo::Gui::MasterPW.save_without_master?
19
+ end
20
+ end
21
+
22
+ Watobo.save_proxy_settings( :save_passwords => save_pws, :key => mp )
23
+
33
24
  Watobo::Gui.save_scanner_settings
34
-
25
+
35
26
  unless Watobo.project.nil?
36
27
  # puts "- save project settings"
37
- # puts Watobo::Conf::General.dump.to_yaml
38
- Watobo::Conf::General.save_project
39
- Watobo::Conf::Interceptor.save_project
40
- Watobo::Conf::SidCache.save_project
41
- end
28
+ # puts Watobo::Conf::General.dump.to_yaml
29
+ Watobo::Conf::General.save_project
30
+ Watobo::Conf::Interceptor.save_project
31
+ Watobo::Conf::SidCache.save_project
32
+ end
42
33
  # also save global settings here
43
34
  # puts "- save global settings"
44
- # puts Watobo::Conf::General.dump.to_yaml
45
- Watobo::Conf::General.save
46
- Watobo::Conf::Interceptor.save
47
-
48
- return true
49
- rescue => bang
50
- puts bang
51
- puts bang.backtrace if $DEBUG
52
- end
53
- return false
54
- end
55
-
56
- def self.save_default_settings_UNUSED(project)
57
- mp = ''
58
- save_pws = false
59
-
60
- # puts "= Master Password Settings ="
61
- # puts Watobo::Gui::MasterPW.settings.to_yaml
62
-
63
- if Watobo::Gui::MasterPW.save_passwords?
64
- save_pws = true
65
- unless Watobo::Gui::MasterPW.set?
66
- save_pws = false unless Watobo::Gui::MasterPW.save_without_master?
67
- end
68
- end
69
-
70
- Watobo.save_proxy_settings( :save_passwords => save_pws, :key => mp )
71
-
72
- Watobo::Conf::General.save
73
- Watobo::Conf::Interceptor.save
74
-
75
- return true
76
- =begin
77
- proxy_has_credentials = false
78
-
79
- settings[:forwarding_proxy].each_key do |p|
80
- next if p == :default_proxy
81
- proxy = settings[:forwarding_proxy][p]
82
-
83
- if proxy.has_key? :password and proxy[:password] != ''
84
- # puts " - proxy #{p} has password #{proxy_list[p][:credentials][:password]}"
85
- proxy_has_credentials = true
86
- end
87
- end
88
- end
89
-
90
- if proxy_has_credentials == true
91
- if settings[:password_policy][:save_passwords] == true
92
- if settings[:password_policy][:save_without_master] == false
93
- if Watobo::Gui.master_password.empty?
94
- # puts "* need master password for proxy"
95
- dlg = MasterPWDialog.new(self)
96
- if dlg.execute != 0
97
- Watobo::Gui.master_password = dlg.masterPassword
98
- end
99
- end
100
- unless Watobo::Gui.master_password.empty?
101
- settings[:forwarding_proxy].each_key do |p|
102
- #creds = settings[:forwarding_proxy][p][:credentials]
103
- #pass = "$$WPE$$" + creds[:password]
104
- pass = settings[:forwarding_proxy][p][:password]
105
- unless pass.empty?
106
- creds[:password] = Crypto.encryptPassword(pass, Watobo::Gui.master_password)
107
- creds[:encrypted] = true
108
- end
109
- end
110
- else
111
- cleanCredentials(settings)
112
- FXMessageBox.information(self,MBOX_OK,"No MasterPassword", "Could not encrypt proxy passwords. No Passwords have been saved!")
113
- end
114
- else
115
- puts "* saving passwords without protection!!!!"
116
- end
117
- else
118
- cleanCredentials(settings)
119
- end
120
- # puts "=== DEFAULT SETTINGS PASSWORD POLICY"
121
- # puts YAML.dump(settings)
122
- Watobo::Utils.save_settings(@default_settings_file, settings )
123
- =end
124
-
125
- end
126
-
127
- end
128
-
129
- end
35
+ # puts Watobo::Conf::General.dump.to_yaml
36
+ Watobo::Conf::General.save
37
+ Watobo::Conf::Interceptor.save
38
+
39
+ return true
40
+ rescue => bang
41
+ puts bang
42
+ puts bang.backtrace if $DEBUG
43
+ end
44
+ return false
45
+ end
46
+
47
+ def self.save_default_settings_UNUSED(project)
48
+ mp = ''
49
+ save_pws = false
50
+
51
+ # puts "= Master Password Settings ="
52
+ # puts Watobo::Gui::MasterPW.settings.to_yaml
53
+
54
+ if Watobo::Gui::MasterPW.save_passwords?
55
+ save_pws = true
56
+ unless Watobo::Gui::MasterPW.set?
57
+ save_pws = false unless Watobo::Gui::MasterPW.save_without_master?
58
+ end
59
+ end
60
+
61
+ Watobo.save_proxy_settings( :save_passwords => save_pws, :key => mp )
62
+
63
+ Watobo::Conf::General.save
64
+ Watobo::Conf::Interceptor.save
65
+
66
+ return true
67
+ =begin
68
+ proxy_has_credentials = false
69
+
70
+ settings[:forwarding_proxy].each_key do |p|
71
+ next if p == :default_proxy
72
+ proxy = settings[:forwarding_proxy][p]
73
+
74
+ if proxy.has_key? :password and proxy[:password] != ''
75
+ # puts " - proxy #{p} has password #{proxy_list[p][:credentials][:password]}"
76
+ proxy_has_credentials = true
77
+ end
78
+ end
79
+ end
80
+
81
+ if proxy_has_credentials == true
82
+ if settings[:password_policy][:save_passwords] == true
83
+ if settings[:password_policy][:save_without_master] == false
84
+ if Watobo::Gui.master_password.empty?
85
+ # puts "* need master password for proxy"
86
+ dlg = MasterPWDialog.new(self)
87
+ if dlg.execute != 0
88
+ Watobo::Gui.master_password = dlg.masterPassword
89
+ end
90
+ end
91
+ unless Watobo::Gui.master_password.empty?
92
+ settings[:forwarding_proxy].each_key do |p|
93
+ #creds = settings[:forwarding_proxy][p][:credentials]
94
+ #pass = "$$WPE$$" + creds[:password]
95
+ pass = settings[:forwarding_proxy][p][:password]
96
+ unless pass.empty?
97
+ creds[:password] = Crypto.encryptPassword(pass, Watobo::Gui.master_password)
98
+ creds[:encrypted] = true
99
+ end
100
+ end
101
+ else
102
+ cleanCredentials(settings)
103
+ FXMessageBox.information(self,MBOX_OK,"No MasterPassword", "Could not encrypt proxy passwords. No Passwords have been saved!")
104
+ end
105
+ else
106
+ puts "* saving passwords without protection!!!!"
107
+ end
108
+ else
109
+ cleanCredentials(settings)
110
+ end
111
+ # puts "=== DEFAULT SETTINGS PASSWORD POLICY"
112
+ # puts YAML.dump(settings)
113
+ Watobo::Utils.save_settings(@default_settings_file, settings )
114
+ =end
115
+
116
+ end
117
+
118
+ end
119
+
120
+ end
@@ -1,9 +0,0 @@
1
- #.
2
- # save_project_settings.rb
3
- #.
4
- # Copyright 2014 by siberas, http://www.siberas.de
5
- # This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
6
- # WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
7
- # WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
8
- # You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
9
-
@@ -1,12 +1,3 @@
1
- #.
2
- # save_proxy_settings.rb
3
- #.
4
- # Copyright 2014 by siberas, http://www.siberas.de
5
- # This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
6
- # WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
7
- # WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
8
- # You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
9
-
10
1
  # @private
11
2
  module Watobo#:nodoc: all
12
3
  def self.save_proxy_settings(prefs={})
@@ -50,47 +41,47 @@ module Watobo#:nodoc: all
50
41
  end
51
42
 
52
43
  end
53
-
44
+
54
45
  def self.save_proxy_settings_UNUSED(prefs={})
55
46
 
56
- puts "* save proxy settings"
57
-
58
- c_prefs = {
59
- :save_passwords => false,
60
- :key => ""
61
- }
62
-
63
- c_prefs.update prefs
64
-
65
- unless Watobo.project.nil?
66
- Watobo::Conf::ForwardingProxy.save_project() do |s|
67
- s.each do |name, proxy|
68
- next unless proxy.is_a? Hash
69
- unless c_prefs[:save_passwords] == false
70
- unless c_prefs[:key].empty?
71
- #asdfa
72
- end
73
- else
74
- proxy[:password] = ''
75
- end
76
- end
77
- end
78
- else
79
-
80
- Watobo::Conf::ForwardingProxy.save do |s|
81
- s.each do |name, proxy|
82
- next unless proxy.is_a? Hash
83
- unless c_prefs[:save_passwords] == false
84
- unless c_prefs[:key].empty?
85
- #asdfa
86
- end
87
- else
88
- proxy[:password] = ''
89
- end
90
- end
91
- end
92
- end
93
-
94
- end
95
-
47
+ puts "* save proxy settings"
48
+
49
+ c_prefs = {
50
+ :save_passwords => false,
51
+ :key => ""
52
+ }
53
+
54
+ c_prefs.update prefs
55
+
56
+ unless Watobo.project.nil?
57
+ Watobo::Conf::ForwardingProxy.save_project() do |s|
58
+ s.each do |name, proxy|
59
+ next unless proxy.is_a? Hash
60
+ unless c_prefs[:save_passwords] == false
61
+ unless c_prefs[:key].empty?
62
+ #asdfa
63
+ end
64
+ else
65
+ proxy[:password] = ''
66
+ end
67
+ end
68
+ end
69
+ else
70
+
71
+ Watobo::Conf::ForwardingProxy.save do |s|
72
+ s.each do |name, proxy|
73
+ next unless proxy.is_a? Hash
74
+ unless c_prefs[:save_passwords] == false
75
+ unless c_prefs[:key].empty?
76
+ #asdfa
77
+ end
78
+ else
79
+ proxy[:password] = ''
80
+ end
81
+ end
82
+ end
83
+ end
84
+
85
+ end
86
+
96
87
  end
@@ -1,33 +1,24 @@
1
- #.
2
- # save_scanner_settings.rb
3
- #.
4
- # Copyright 2014 by siberas, http://www.siberas.de
5
- # This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
6
- # WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
7
- # WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
8
- # You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
9
-
10
1
  # @private
11
- module Watobo#:nodoc: all
12
- module Gui
2
+ module Watobo#:nodoc: all
3
+ module Gui
13
4
  def self.save_scanner_settings()
14
5
  #puts "* saving scanner settings ..."
15
6
  #puts Watobo::Conf::Scanner.settings.to_yaml
16
-
17
- unless Watobo.project.nil?
18
-
19
- Watobo::Conf::Scanner.save_project(){ |s|
7
+
8
+ unless Watobo.project.nil?
9
+
10
+ Watobo::Conf::Scanner.save_project(){ |s|
20
11
  # puts s.to_yaml
21
- s.delete(:scan_name)
22
- s
23
- }
24
-
25
- session_filter = [ :sid_patterns, :logout_signatures, :custom_error_patterns, :max_parallel_checks, :excluded_parms, :non_unique_parms ]
26
- Watobo::Conf::Scanner.save_session(session_filter)
27
- return true
28
- else
29
- Watobo::Conf::Scanner.save
30
- end
31
- end
32
- end
12
+ s.delete(:scan_name)
13
+ s
14
+ }
15
+
16
+ session_filter = [ :sid_patterns, :logout_signatures, :custom_error_patterns, :max_parallel_checks, :excluded_parms, :non_unique_parms ]
17
+ Watobo::Conf::Scanner.save_session(session_filter)
18
+ return true
19
+ else
20
+ Watobo::Conf::Scanner.save
21
+ end
22
+ end
23
+ end
33
24
  end
@@ -1,123 +1,114 @@
1
- #.
2
- # session_history.rb
3
- #.
4
- # Copyright 2014 by siberas, http://www.siberas.de
5
- # This file is part of WATOBO (Web Application Tool Box) http://watobo.sourceforge.com
6
- # WATOBO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2 of the License.
7
- # WATOBO is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
8
- # You should have received a copy of the GNU General Public License along with WATOBO; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
9
-
10
1
  # @private
11
- module Watobo#:nodoc: all
12
-
13
- module Gui
14
-
15
- # Watobo::Gui::History
16
- =begin
17
- Class for managing history entries
18
- entries are organised as a hash.
19
- each entry consists of a hash.
20
- the key of an entry is based on its session filename
21
-
22
- @history_entry[session_file] = {
23
- :last_used
24
- :created
25
- :project_name
26
- :session_name
27
- :description
28
- }
29
- =end
30
- class SessionHistory
31
-
32
- attr_accessor :max_entries
33
- def save()
34
- begin
35
- File.open(@history_file,"w") { |fh| fh.write YAML.dump(@history_entries) }
36
- rescue => bang
37
- puts bang
38
- puts bang.backtrace if $DEBUG
39
- end
40
- end
41
-
42
- def entries
43
- @history_entries
44
- end
45
-
46
- def add_entry(prefs = {})
47
- t_now = Time.now.to_i
48
- return false unless prefs.has_key? :session_name or prefs.has_key? :project_name
49
- puts "#"
50
- hid = history_id(prefs[:project_name], prefs[:session_name])
51
- @history_entries[hid] ||= {
52
- :created => t_now
53
- }
54
- @history_entries[hid][:last_used] = t_now
55
-
56
- [ :description, :project_name, :session_name ].each do |k|
57
- @history_entries[hid][k] = prefs[k] if prefs.has_key? k
58
- end
59
-
60
- while @history_entries.length > @max_entries do
61
- oid, ov = @history_entries.min_by{ |id,v| v[:last_used] }
62
- @history_entries.delete oid
63
- end
64
-
65
- save()
66
- end
67
-
68
- def delete_entry(project_name, session_name)
69
- @history_entries.delete history_id(project_name, session_name)
70
- end
71
-
72
- def update_usage(prefs)
73
- t_now = Time.now.to_i
74
- return false unless prefs.has_key? :session_name or prefs.has_key? :project_name
75
- hid = history_id(prefs[:project_name], prefs[:session_name])
76
- return false unless @history_entries.has_key? hid
77
- @history_entries[hid][:last_used] = t_now
78
- save()
79
- end
80
-
81
- def each(&b)
82
- @history_entries.each_key{ |k|
83
- yield @history_entries[k] if block_given?
84
- }
85
- end
86
-
87
- def load(history_file)
88
- if File.exist? history_file
89
- @history_entries = YAML.load_file(history_file)
90
- end
91
- end
92
-
93
- def initialize(filename)
94
-
95
- @max_entries = 8
96
- @history_entries = Hash.new
97
- @history_file = filename
98
-
99
- if File.exist? @history_file
100
- load(@history_file)
101
- else
102
- begin
103
- File.open(@history_file,"w") { |fh| fh.write YAML.dump(@history_entries) }
104
- rescue => bang
105
- puts bang
106
- puts bang.backtrace if $DEBUG
107
- end
108
- end
109
-
110
- end
111
-
112
- private
113
-
114
- def history_id(project_name, session_name)
115
- text = [ project_name, session_name ].join("$")
116
- return Digest::MD5.hexdigest(text)
117
- end
118
-
119
- end
120
-
121
- end
122
-
2
+ module Watobo#:nodoc: all
3
+
4
+ module Gui
5
+
6
+ # Watobo::Gui::History
7
+ =begin
8
+ Class for managing history entries
9
+ entries are organised as a hash.
10
+ each entry consists of a hash.
11
+ the key of an entry is based on its session filename
12
+
13
+ @history_entry[session_file] = {
14
+ :last_used
15
+ :created
16
+ :project_name
17
+ :session_name
18
+ :description
19
+ }
20
+ =end
21
+ class SessionHistory
22
+
23
+ attr_accessor :max_entries
24
+ def save()
25
+ begin
26
+ File.open(@history_file,"w") { |fh| fh.write YAML.dump(@history_entries) }
27
+ rescue => bang
28
+ puts bang
29
+ puts bang.backtrace if $DEBUG
30
+ end
31
+ end
32
+
33
+ def entries
34
+ @history_entries
35
+ end
36
+
37
+ def add_entry(prefs = {})
38
+ t_now = Time.now.to_i
39
+ return false unless prefs.has_key? :session_name or prefs.has_key? :project_name
40
+ puts "#"
41
+ hid = history_id(prefs[:project_name], prefs[:session_name])
42
+ @history_entries[hid] ||= {
43
+ :created => t_now
44
+ }
45
+ @history_entries[hid][:last_used] = t_now
46
+
47
+ [ :description, :project_name, :session_name ].each do |k|
48
+ @history_entries[hid][k] = prefs[k] if prefs.has_key? k
49
+ end
50
+
51
+ while @history_entries.length > @max_entries do
52
+ oid, ov = @history_entries.min_by{ |id,v| v[:last_used] }
53
+ @history_entries.delete oid
54
+ end
55
+
56
+ save()
57
+ end
58
+
59
+ def delete_entry(project_name, session_name)
60
+ @history_entries.delete history_id(project_name, session_name)
61
+ end
62
+
63
+ def update_usage(prefs)
64
+ t_now = Time.now.to_i
65
+ return false unless prefs.has_key? :session_name or prefs.has_key? :project_name
66
+ hid = history_id(prefs[:project_name], prefs[:session_name])
67
+ return false unless @history_entries.has_key? hid
68
+ @history_entries[hid][:last_used] = t_now
69
+ save()
70
+ end
71
+
72
+ def each(&b)
73
+ @history_entries.each_key{ |k|
74
+ yield @history_entries[k] if block_given?
75
+ }
76
+ end
77
+
78
+ def load(history_file)
79
+ if File.exist? history_file
80
+ @history_entries = YAML.load_file(history_file)
81
+ end
82
+ end
83
+
84
+ def initialize(filename)
85
+
86
+ @max_entries = 8
87
+ @history_entries = Hash.new
88
+ @history_file = filename
89
+
90
+ if File.exist? @history_file
91
+ load(@history_file)
92
+ else
93
+ begin
94
+ File.open(@history_file,"w") { |fh| fh.write YAML.dump(@history_entries) }
95
+ rescue => bang
96
+ puts bang
97
+ puts bang.backtrace if $DEBUG
98
+ end
99
+ end
100
+
101
+ end
102
+
103
+ private
104
+
105
+ def history_id(project_name, session_name)
106
+ text = [ project_name, session_name ].join("$")
107
+ return Digest::MD5.hexdigest(text)
108
+ end
109
+
110
+ end
111
+
112
+ end
113
+
123
114
  end