watobo 0.9.12 → 0.9.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (263) hide show
  1. data/.yardopts +2 -2
  2. data/{CHANGELOG → CHANGELOG.md} +62 -0
  3. data/README.md +30 -0
  4. data/bin/nfq_server.rb +4 -3
  5. data/bin/watobo_gui.rb +1 -1
  6. data/config/ott_cache.yml +4 -0
  7. data/config/scanner.yml +1 -18
  8. data/config/sid_cache.yml +14 -0
  9. data/extras/private-hostspot.sh +17 -0
  10. data/extras/watobo-installer.sh +61 -0
  11. data/extras/watobo-transparent.sh +38 -0
  12. data/icons/BestPractice_16x16.ico +0 -0
  13. data/icons/BestPractice_24x24.ico +0 -0
  14. data/lib/watobo/adapters/data_store.rb +25 -3
  15. data/lib/watobo/adapters/file/file_store.rb +19 -11
  16. data/lib/watobo/adapters/session_store.rb +3 -2
  17. data/lib/watobo/adapters.rb +1 -1
  18. data/lib/watobo/ca.rb +1 -1
  19. data/lib/watobo/config.rb +17 -19
  20. data/lib/watobo/constants.rb +3 -2
  21. data/lib/watobo/core/active_check.rb +62 -40
  22. data/lib/watobo/core/active_checks.rb +73 -0
  23. data/lib/watobo/core/ca.rb +3 -2
  24. data/lib/watobo/core/cert_store.rb +3 -2
  25. data/lib/watobo/core/chat.rb +122 -0
  26. data/lib/watobo/core/chats.rb +301 -0
  27. data/lib/watobo/core/conversation.rb +71 -0
  28. data/lib/watobo/core/cookie.rb +9 -25
  29. data/lib/watobo/core/finding.rb +89 -0
  30. data/lib/watobo/core/findings.rb +132 -0
  31. data/lib/watobo/core/forwarding_proxy.rb +4 -2
  32. data/lib/watobo/core/fuzz_gen.rb +3 -2
  33. data/lib/watobo/core/intercept_carver.rb +24 -12
  34. data/lib/watobo/core/intercept_filter.rb +4 -3
  35. data/lib/watobo/core/interceptor.rb +9 -888
  36. data/lib/watobo/core/min_class.rb +27 -0
  37. data/lib/watobo/core/netfilter_queue.rb +3 -2
  38. data/lib/watobo/core/ott_cache.rb +156 -0
  39. data/lib/watobo/core/parameter.rb +66 -0
  40. data/lib/watobo/core/passive_check.rb +15 -22
  41. data/lib/watobo/core/passive_checks.rb +72 -0
  42. data/lib/watobo/core/passive_scanner.rb +69 -0
  43. data/lib/watobo/core/plugin.rb +33 -0
  44. data/lib/watobo/core/project.rb +40 -547
  45. data/lib/watobo/core/proxy.rb +7 -2
  46. data/lib/watobo/core/request.rb +95 -10
  47. data/lib/watobo/core/response.rb +44 -3
  48. data/lib/watobo/core/scanner.rb +6 -7
  49. data/lib/watobo/core/scanner3.rb +439 -0
  50. data/lib/watobo/core/scope.rb +106 -0
  51. data/lib/watobo/core/session.rb +106 -286
  52. data/lib/watobo/core/sid_cache.rb +121 -0
  53. data/lib/watobo/core/subscriber.rb +48 -0
  54. data/lib/watobo/core.rb +2 -2
  55. data/lib/watobo/defaults.rb +3 -2
  56. data/lib/watobo/external/diff/lcs/array.rb +1 -1
  57. data/lib/watobo/external/diff/lcs/block.rb +1 -1
  58. data/lib/watobo/external/diff/lcs/callbacks.rb +1 -1
  59. data/lib/watobo/external/diff/lcs/change.rb +1 -1
  60. data/lib/watobo/external/diff/lcs/hunk.rb +1 -1
  61. data/lib/watobo/external/diff/lcs/ldiff.rb +1 -1
  62. data/lib/watobo/external/diff/lcs/string.rb +1 -1
  63. data/lib/watobo/external/diff/lcs.rb +1 -1
  64. data/lib/watobo/external/ntlm/ntlm.rb +1 -1
  65. data/lib/watobo/externals.rb +1 -1
  66. data/lib/watobo/framework/create_project.rb +19 -12
  67. data/lib/watobo/framework/init.rb +4 -3
  68. data/lib/watobo/framework/init_modules.rb +32 -3
  69. data/lib/watobo/framework/license_text.rb +3 -2
  70. data/lib/watobo/framework/load_chat.rb +36 -0
  71. data/lib/watobo/framework.rb +2 -2
  72. data/lib/watobo/gui/about_watobo.rb +3 -2
  73. data/lib/watobo/gui/browser_preview.rb +4 -3
  74. data/lib/watobo/gui/certificate_dialog.rb +3 -2
  75. data/lib/watobo/gui/chat_diff.rb +6 -14
  76. data/lib/watobo/gui/chatviewer_frame.rb +30 -5
  77. data/lib/watobo/gui/checkboxtree.rb +13 -12
  78. data/lib/watobo/gui/checks_policy_frame.rb +8 -10
  79. data/lib/watobo/gui/client_cert_dialog.rb +8 -6
  80. data/lib/watobo/gui/confirm_scan_dialog.rb +5 -3
  81. data/lib/watobo/gui/conversation_table.rb +288 -51
  82. data/lib/watobo/gui/conversation_table_ctrl.rb +36 -3
  83. data/lib/watobo/gui/conversation_table_ctrl2.rb +416 -0
  84. data/lib/watobo/gui/csrf_token_dialog.rb +25 -33
  85. data/lib/watobo/gui/dashboard.rb +47 -45
  86. data/lib/watobo/gui/define_scope_frame.rb +27 -22
  87. data/lib/watobo/gui/differ_frame.rb +238 -0
  88. data/lib/watobo/gui/edit_comment.rb +3 -2
  89. data/lib/watobo/gui/edit_scope_dialog.rb +7 -6
  90. data/lib/watobo/gui/finding_info.rb +3 -2
  91. data/lib/watobo/gui/findings_tree.rb +101 -26
  92. data/lib/watobo/gui/full_scan_dialog.rb +5 -6
  93. data/lib/watobo/gui/fuzzer_gui.rb +51 -18
  94. data/lib/watobo/gui/goto_url_dialog.rb +92 -0
  95. data/lib/watobo/gui/hex_viewer.rb +16 -5
  96. data/lib/watobo/gui/html_viewer.rb +309 -0
  97. data/lib/watobo/gui/intercept_filter_dialog.rb +3 -2
  98. data/lib/watobo/gui/interceptor_gui.rb +5 -4
  99. data/lib/watobo/gui/interceptor_settings_dialog.rb +4 -3
  100. data/lib/watobo/gui/list_box.rb +4 -3
  101. data/lib/watobo/gui/log_file_viewer.rb +55 -0
  102. data/lib/watobo/gui/log_viewer.rb +3 -82
  103. data/lib/watobo/gui/login_wizzard.rb +3 -3
  104. data/lib/watobo/gui/main_window.rb +183 -164
  105. data/lib/watobo/gui/manual_request_editor.rb +157 -642
  106. data/lib/watobo/gui/master_pw_dialog.rb +3 -2
  107. data/lib/watobo/gui/mixins/gui_settings.rb +3 -2
  108. data/lib/watobo/gui/page_tree.rb +3 -2
  109. data/lib/watobo/gui/password_policy_dialog.rb +3 -2
  110. data/lib/watobo/gui/plugin_board.rb +103 -73
  111. data/lib/watobo/gui/preferences_dialog.rb +3 -2
  112. data/lib/watobo/gui/progress_window.rb +3 -2
  113. data/lib/watobo/gui/project_wizzard.rb +3 -2
  114. data/lib/watobo/gui/proxy_dialog.rb +3 -2
  115. data/lib/watobo/gui/quick_scan_dialog.rb +17 -32
  116. data/lib/watobo/gui/request_builder_frame.rb +134 -0
  117. data/lib/watobo/gui/request_editor.rb +14 -9
  118. data/lib/watobo/gui/rewrite_filters_dialog.rb +4 -3
  119. data/lib/watobo/gui/rewrite_rules_dialog.rb +4 -3
  120. data/lib/watobo/gui/save_chat_dialog.rb +7 -3
  121. data/lib/watobo/gui/scanner_settings_dialog.rb +4 -3
  122. data/lib/watobo/gui/select_chat_dialog.rb +15 -25
  123. data/lib/watobo/gui/session_management_dialog.rb +21 -25
  124. data/lib/watobo/gui/sites_tree.rb +5 -4
  125. data/lib/watobo/gui/status_bar.rb +3 -2
  126. data/lib/watobo/gui/table_editor.rb +398 -386
  127. data/lib/watobo/gui/tagless_viewer.rb +3 -2
  128. data/lib/watobo/gui/templates/plugin.rb +3 -2
  129. data/lib/watobo/gui/templates/plugin2.rb +4 -3
  130. data/lib/watobo/gui/templates/plugin_base.rb +168 -0
  131. data/lib/watobo/gui/text_viewer.rb +49 -3
  132. data/lib/watobo/gui/transcoder_window.rb +3 -2
  133. data/lib/watobo/gui/utils/gui_utils.rb +5 -4
  134. data/lib/watobo/gui/utils/init_icons.rb +5 -2
  135. data/lib/watobo/gui/utils/load_icons.rb +3 -2
  136. data/lib/watobo/gui/utils/load_plugins.rb +22 -5
  137. data/lib/watobo/gui/utils/master_password.rb +3 -2
  138. data/lib/watobo/gui/utils/save_default_settings.rb +7 -5
  139. data/lib/watobo/gui/utils/save_project_settings.rb +1 -1
  140. data/lib/watobo/gui/utils/save_proxy_settings.rb +4 -3
  141. data/lib/watobo/gui/utils/save_scanner_settings.rb +5 -4
  142. data/lib/watobo/gui/utils/session_history.rb +3 -2
  143. data/lib/watobo/gui/workspace_dialog.rb +3 -2
  144. data/lib/watobo/gui/www_auth_dialog.rb +4 -3
  145. data/lib/watobo/gui/xml_viewer_frame.rb +3 -2
  146. data/lib/watobo/gui.rb +6 -3
  147. data/lib/watobo/http/cookies/cookies.rb +66 -0
  148. data/lib/watobo/http/data/data.rb +68 -0
  149. data/lib/watobo/{gui/mixins/subscriber.rb → http/url/url.rb} +33 -19
  150. data/lib/watobo/http_socket/agent.rb +851 -0
  151. data/lib/watobo/http_socket/client_socket.rb +290 -0
  152. data/lib/watobo/http_socket/connection.rb +423 -0
  153. data/lib/watobo/http_socket/http_socket.rb +273 -0
  154. data/lib/watobo/http_socket/ntlm_auth.rb +152 -0
  155. data/lib/watobo/http_socket/proxy.rb +31 -0
  156. data/lib/watobo/http_socket.rb +25 -0
  157. data/lib/watobo/interceptor/proxy.rb +883 -0
  158. data/lib/watobo/interceptor/transparent.rb +37 -0
  159. data/lib/watobo/interceptor.rb +25 -0
  160. data/lib/watobo/mixins/check_info.rb +50 -0
  161. data/lib/watobo/mixins/httpparser.rb +92 -20
  162. data/lib/watobo/mixins/request_parser.rb +103 -88
  163. data/lib/watobo/mixins/shapers.rb +42 -11
  164. data/lib/watobo/mixins/transcoders.rb +61 -57
  165. data/lib/watobo/mixins.rb +3 -2
  166. data/lib/watobo/parser/html.rb +106 -0
  167. data/lib/watobo/parser.rb +22 -0
  168. data/lib/watobo/utils/check_regex.rb +3 -2
  169. data/lib/watobo/utils/copy_object.rb +3 -2
  170. data/lib/watobo/utils/crypto.rb +3 -2
  171. data/lib/watobo/utils/expand_range.rb +3 -2
  172. data/lib/watobo/utils/file_management.rb +7 -3
  173. data/lib/watobo/utils/hexprint.rb +3 -2
  174. data/lib/watobo/utils/load_chat.rb +4 -3
  175. data/lib/watobo/utils/load_icon.rb +3 -2
  176. data/lib/watobo/utils/print_debug.rb +3 -2
  177. data/lib/watobo/utils/response_builder.rb +6 -4
  178. data/lib/watobo/utils/response_hash.rb +66 -49
  179. data/lib/watobo/utils/secure_eval.rb +3 -2
  180. data/lib/watobo/utils/strings.rb +3 -2
  181. data/lib/watobo/utils/text2request.rb +4 -5
  182. data/lib/watobo/utils/url.rb +46 -0
  183. data/lib/watobo/utils.rb +3 -2
  184. data/lib/watobo.rb +13 -3
  185. data/modules/active/Apache/mod_status.rb +15 -11
  186. data/modules/active/Flash/crossdomain.rb +17 -14
  187. data/modules/active/RoR/cve_2013_015x.rb +21 -0
  188. data/modules/active/directories/dirwalker.rb +10 -16
  189. data/modules/active/discovery/fileextensions.rb +10 -7
  190. data/modules/active/discovery/http_methods.rb +8 -9
  191. data/modules/active/domino/domino_db.rb +10 -11
  192. data/modules/active/dotNET/custom_errors.rb +124 -0
  193. data/modules/active/dotNET/dotnet_files.rb +112 -0
  194. data/modules/active/fileinclusion/lfi_simple.rb +9 -7
  195. data/modules/active/jboss/jboss_basic.rb +12 -9
  196. data/modules/active/sap/its_commands.rb +10 -9
  197. data/modules/active/sap/its_service_parameter.rb +10 -9
  198. data/modules/active/sap/its_services.rb +10 -9
  199. data/modules/active/sap/its_xss.rb +11 -10
  200. data/modules/active/siebel/siebel_apps.rb +14 -16
  201. data/modules/active/sqlinjection/sql_boolean.rb +139 -75
  202. data/modules/active/sqlinjection/sqli_error.rb +9 -6
  203. data/modules/active/sqlinjection/sqli_timing.rb +13 -11
  204. data/modules/active/xml/xml_xxe.rb +134 -0
  205. data/modules/active/xss/{xss_rated.rb → xss_ng.rb} +89 -56
  206. data/modules/active/xss/xss_simple.rb +9 -6
  207. data/modules/passive/ajax.rb +85 -0
  208. data/modules/passive/autocomplete.rb +78 -0
  209. data/modules/passive/cookie_options.rb +3 -2
  210. data/modules/passive/cookie_xss.rb +3 -2
  211. data/modules/passive/detect_code.rb +7 -4
  212. data/modules/passive/detect_fileupload.rb +3 -2
  213. data/modules/passive/detect_infrastructure.rb +7 -4
  214. data/modules/passive/detect_one_time_tokens.rb +3 -2
  215. data/modules/passive/dirindexing.rb +3 -2
  216. data/modules/passive/disclosure_domino.rb +3 -2
  217. data/modules/passive/disclosure_emails.rb +3 -2
  218. data/modules/passive/disclosure_ipaddr.rb +3 -2
  219. data/modules/passive/filename_as_parameter.rb +3 -2
  220. data/modules/passive/form_spotter.rb +10 -7
  221. data/modules/passive/hidden_fields.rb +73 -0
  222. data/modules/passive/hotspots.rb +7 -4
  223. data/modules/passive/in_script_parameter.rb +3 -2
  224. data/modules/passive/multiple_server_headers.rb +4 -3
  225. data/modules/passive/possible_login.rb +3 -2
  226. data/modules/passive/redirect_url.rb +3 -2
  227. data/modules/passive/redirectionz.rb +6 -3
  228. data/modules/passive/xss_dom.rb +16 -9
  229. data/plugins/catalog/catalog.rb +119 -193
  230. data/plugins/crawler/crawler.rb +4 -3
  231. data/plugins/crawler/gui/auth_frame.rb +3 -2
  232. data/plugins/crawler/gui/crawler_gui.rb +3 -2
  233. data/plugins/crawler/gui/general_settings_frame.rb +3 -2
  234. data/plugins/crawler/gui/hooks_frame.rb +3 -2
  235. data/plugins/crawler/gui/scope_frame.rb +3 -2
  236. data/plugins/crawler/gui/settings_tabbook.rb +3 -2
  237. data/plugins/crawler/gui/status_frame.rb +3 -2
  238. data/plugins/crawler/gui.rb +3 -2
  239. data/plugins/crawler/lib/bags.rb +3 -2
  240. data/plugins/crawler/lib/constants.rb +3 -2
  241. data/plugins/crawler/lib/engine.rb +3 -2
  242. data/plugins/crawler/lib/grabber.rb +3 -2
  243. data/plugins/crawler/lib/uri_mp.rb +1 -1
  244. data/plugins/filefinder/filefinder.rb +92 -70
  245. data/plugins/sqlmap/bin/test.rb +3 -2
  246. data/plugins/sqlmap/gui/main.rb +3 -2
  247. data/plugins/sqlmap/gui/options_frame.rb +4 -3
  248. data/plugins/sqlmap/gui.rb +1 -1
  249. data/plugins/sqlmap/lib/sqlmap_ctrl.rb +3 -2
  250. data/plugins/sqlmap/sqlmap.rb +1 -1
  251. data/plugins/sslchecker/cli/sslchecker_cli.rb +1 -1
  252. data/plugins/sslchecker/gui/cipher_table.rb +17 -10
  253. data/plugins/sslchecker/gui/gui.rb +59 -56
  254. data/plugins/sslchecker/gui/sslchecker.rb +1 -1
  255. data/plugins/sslchecker/lib/check.rb +43 -18
  256. data/plugins/wshell/gui/main.rb +130 -0
  257. data/plugins/wshell/icons/wsh.ico +0 -0
  258. data/plugins/wshell/lib/core.rb +99 -0
  259. data/plugins/wshell/wshell.rb +33 -0
  260. metadata +80 -8
  261. data/README +0 -26
  262. data/lib/watobo/core/http_socket.rb +0 -161
  263. data/lib/watobo/gui/plugin/base.rb +0 -82
data/.yardopts CHANGED
@@ -1,7 +1,7 @@
1
1
  # .
2
2
  # .yardopts
3
3
  #
4
- # Copyright 2012 by siberas, http://www.siberas.de
4
+ # Copyright 2013 by siberas, http://www.siberas.de
5
5
  #
6
6
  # This file is part of WATOBO (Web Application Tool Box)
7
7
  # http://watobo.sourceforge.com
@@ -21,4 +21,4 @@
21
21
  # .
22
22
  --no-private
23
23
  *.xxx
24
- - CHANGELOG
24
+ --files CHANGELOG.md
@@ -1,3 +1,65 @@
1
+ Version 0.9.13
2
+ ===
3
+ News
4
+ ---
5
+ **Core**
6
+
7
+ * Faster socket communication!! Now client sockets are reused
8
+ * Big big changes on core modules, e.g. Watobo::Chats or Watobo::Findings.
9
+ * PassiveScanner - passive checks now run in background
10
+ * New DSL-like Plugin Style - digging into Metaprogramming ... check out WShell Plugin!
11
+
12
+ **Modules**
13
+
14
+ * XSS-NG supports "Parameter Prefetching" - using form fields of response as test parameters
15
+ * Hidden Field Spotter
16
+ * Improved boolean SQLi detection
17
+ * added some .NET Checks for well-known files, e.g. Trace.adx and Error Pages /w Stack-Trace
18
+ * XXE (Xml eXternal Entity) check
19
+ * Check html password fields for autocomplete attribute
20
+
21
+ **Plugins**
22
+
23
+ * SSL Checker now also shows the tested method (SSLv3, TLS, ..)
24
+ * WShell - Watobo Shell; With WShell you can execute ruby commands in the context of WATOBO. Very useful for advanced analysis, debugging purposes or simply to explore WATOBO.
25
+
26
+ **GUI**
27
+
28
+ * Parameter names in Table view are now automatically en-/decoded
29
+ * Right-Click on a plugin to get some information about it - only works on new plugins at the moment ...
30
+ * Introduced a new chat viewer with HTML highlighting (based on FXScintilla)
31
+ * ConversationTable: added 'space' hotkey to open "Edit Comment" dialog
32
+ * ConversationTable: added hotkeys for "goto url" navigation
33
+ * ChatViewer: xml/html content gets prettyfied for text- and html-viewer
34
+ * FindingsTree: added counter to finding class
35
+ * FindingsTree: memorize expanded nodes
36
+ * Conversation table filter now opens as a dialog and displays more information
37
+
38
+ Fixes
39
+ ---
40
+ **Core**
41
+
42
+ * Bug in parsing multipart requests caused by incorrect boundary handling
43
+ * conversation text filter now works on responses without content-type header
44
+
45
+ **Fuzzer**
46
+
47
+ * fixed generator in fuzzer engine
48
+
49
+ **GUI**
50
+
51
+ * crash after selecting client certs
52
+ * no more swallowing a space-char at the end of a string when b64decoding with short-cuts
53
+
54
+ **Plugins**
55
+
56
+ * Catalog-Scanner: now all placeholders will be replaced
57
+ * SSLChecker now supports more methods and ciphers, incl. SSLv2
58
+
59
+ **Passive Modules**
60
+
61
+ * FormSpotter: now using nokogiri for parsing/extracting <form> information
62
+
1
63
  = Version 0.9.12
2
64
  == NEW
3
65
  * [Module] Siebel Checks: Enumeration of default apps and files, e.g. base.txt
data/README.md ADDED
@@ -0,0 +1,30 @@
1
+ WATOBO - THE Web Application Toolbox
2
+ ===
3
+ WATOBO is a security tool for web applications. It is intended to enable security professionals to perform efficient (semi-automated) web application security audits.
4
+
5
+ Most important features:
6
+
7
+ * WATOBO has Session Management capabilities! You can define login scripts as well as logout signatures. So you don’t have to login manually each time you get logged out.
8
+ * WATOB can act as a transparent proxy (requires nfqueue)
9
+ * WATOBO can perform vulnerability checks out of the box
10
+ * WATOBO can perform checks on functions which are protected by Anti-CSRF-/One-Time-Tokens
11
+ * WATOBO supports Inline De-/Encoding, so you don’t have to copy strings to a transcoder and back again. Just do it inside the request/response window with a simple mouse click.
12
+ * WATOBO has smart filter functions, so you can find and navigate to the most interesting parts of the application easily.
13
+ * WATOBO is written in (FX)Ruby and enables you to easily define your own checks
14
+ * WATOBO runs on Windows, Linux, MacOS ... every OS supporting (FX)Ruby
15
+ * WATOBO is free software ( licensed under the GNU General Public License Version 2)
16
+ * It’s by siberas ;)
17
+
18
+ Documentation
19
+ ---
20
+ Check out the online documentation and video tutorials at http://watobo.sourceforge.net
21
+
22
+ Tips & Tricks
23
+ ---
24
+ * On Linux you should use RVM to install Ruby (http://beginrescueend.com/rvm/install/)
25
+ * Use FoxyProxy or SwitchProxy to easily change your proxy settings
26
+
27
+
28
+
29
+
30
+
data/bin/nfq_server.rb CHANGED
@@ -2,7 +2,7 @@
2
2
  # .
3
3
  # nfq_server.rb
4
4
  #
5
- # Copyright 2012 by siberas, http://www.siberas.de
5
+ # Copyright 2013 by siberas, http://www.siberas.de
6
6
  #
7
7
  # This file is part of WATOBO (Web Application Tool Box)
8
8
  # http://watobo.sourceforge.com
@@ -32,7 +32,8 @@ rescue LoadError
32
32
  exit
33
33
  end
34
34
 
35
- module Watobo
35
+ # @private
36
+ module Watobo#:nodoc: all
36
37
  module NFQ
37
38
  class Connections
38
39
  attr :nfqueue
@@ -185,7 +186,7 @@ module Watobo
185
186
  end
186
187
  end
187
188
 
188
- DRb.start_service "druby://127.0.0.1:666", Watobo::NFQ::Connections.new
189
+ DRb.start_service "druby://127.0.0.1:9090", Watobo::NFQ::Connections.new
189
190
  #puts DRb.uri
190
191
  DRb.thread.join
191
192
 
data/bin/watobo_gui.rb CHANGED
@@ -2,7 +2,7 @@
2
2
  # .
3
3
  # watobo_gui.rb
4
4
  #
5
- # Copyright 2012 by siberas, http://www.siberas.de
5
+ # Copyright 2013 by siberas, http://www.siberas.de
6
6
  #
7
7
  # This file is part of WATOBO (Web Application Tool Box)
8
8
  # http://watobo.sourceforge.com
@@ -0,0 +1,4 @@
1
+ :patterns:
2
+ - name="(token)" value="([0-9a-zA-Z!-]*)"
3
+ - (token)=([-0-9a-zA-Z_:]*)(;|&)?
4
+ :request_ids: {}
data/config/scanner.yml CHANGED
@@ -1,17 +1,3 @@
1
- :sid_patterns:
2
- - name="(sessid)" value="([0-9a-zA-Z!-]*)"
3
- - (sessid)=([-0-9a-zA-Z_:]*)(;|&)?
4
- - (SESSIONID)=([-0-9a-zA-Z_:\.\(\)]*)(;|&)?
5
- - (PHPSESSID)=([0-9a-zA-Z]*)(;|&)?
6
- - (ASPSESSIONID)\w*=([0-9a-zA-Z]*)(;|&)?
7
- - (MYSAPSSO2)=([0-9a-zA-Z.=%]*)(;|&)?
8
- - (ELEXIRSID)=([0-9a-zA-Z!-]*)(;|&)?
9
- - (SLSID)=([0-9a-zA-Z!-]*)(;|&)?
10
- - (sid)=([0-9a-z]*)(')?
11
- - (saplb_\*)=([-0-9a-zA-Z_:\(\)]*)(;|&)?
12
- - (DomAuthSessId)=([0-9a-zA-Z]*)(;|&)?
13
- - (wgate)\/([\w]{4,}\/[\w=~]*)(;|&|'|")?
14
- - (session)=([-0-9a-zA-Z_:\.]*)(;|&)?
15
1
  :logout_signatures:
16
2
  - ^Location.*login
17
3
  :smart_scan: true
@@ -27,8 +13,5 @@
27
13
  :scope: {}
28
14
  :run_passive_checks: false
29
15
  :client_certificates: {}
30
- :csrf_patterns:
31
- - name="(token)" value="([0-9a-zA-Z!-]*)"
32
- - (token)=([-0-9a-zA-Z_:]*)(;|&)?
33
-
16
+ :auto_login: true
34
17
 
@@ -0,0 +1,14 @@
1
+ :patterns:
2
+ - name="(sessid)" value="([0-9a-zA-Z!-]*)"
3
+ - (sessid)=([-0-9a-zA-Z_:]*)(;|&)?
4
+ - (SESSIONID)=([-0-9a-zA-Z_:\.\(\)]*)(;|&)?
5
+ - (PHPSESSID)=([0-9a-zA-Z]*)(;|&)?
6
+ - (ASPSESSIONID)\w*=([0-9a-zA-Z]*)(;|&)?
7
+ - (MYSAPSSO2)=([0-9a-zA-Z.=%]*)(;|&)?
8
+ - (ELEXIRSID)=([0-9a-zA-Z!-]*)(;|&)?
9
+ - (SLSID)=([0-9a-zA-Z!-]*)(;|&)?
10
+ - (sid)=([0-9a-z]*)(')?
11
+ - (saplb_\*)=([-0-9a-zA-Z_:\(\)]*)(;|&)?
12
+ - (DomAuthSessId)=([0-9a-zA-Z]*)(;|&)?
13
+ - (wgate)\/([\w]{4,}\/[\w=~]*)(;|&|'|")?
14
+ - (session)=([-0-9a-zA-Z_:\.]*)(;|&)?
@@ -0,0 +1,17 @@
1
+ #!/bin/bash
2
+ iptables -F
3
+ iptables -X
4
+ iptables -t nat -F
5
+ iptables -t nat -X
6
+ iptables -t mangle -F
7
+ iptables -t mangle -X
8
+ iptables -P INPUT ACCEPT
9
+ iptables -P FORWARD ACCEPT
10
+ iptables -P OUTPUT ACCEPT
11
+
12
+ echo "Turning on Natting"
13
+ iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
14
+
15
+ echo "Allowing ip forwarding"
16
+ echo 1 > /proc/sys/net/ipv4/ip_forward
17
+
@@ -0,0 +1,61 @@
1
+ #!/bin/bash
2
+ #===========================
3
+ # WATOBO-Installer for Linux
4
+ #---------------------------
5
+ # Tested on BackTrack 5R2
6
+ #===========================
7
+ # Date: 06.08.2012
8
+ # Author: Andreas Schmidt
9
+ Version=1.1
10
+ #---
11
+ # Version 1.1
12
+ # added libnetfilter-queue-dev package & gem
13
+ # added platform detection
14
+ #---
15
+
16
+ info() {
17
+ printf "\033[36m$*\033[0m\n"
18
+ }
19
+
20
+ head() {
21
+ printf "\033[31m$*\033[0m\n"
22
+ }
23
+
24
+ head "##############################################"
25
+ head "# W A T O B O - I N S T A L L E R #"
26
+ head "##############################################"
27
+ info "Version: $Version"
28
+ gem_opts=""
29
+ platform="Generic"
30
+ file=/etc/issue
31
+ if grep -q "BackTrack" $file
32
+ then
33
+ platform="BackTrack"
34
+ gem_opts="--user-install"
35
+ fi
36
+
37
+ info "Platform: $platform"
38
+
39
+ if [ "$platform" == "BackTrack" ]
40
+ then
41
+ echo "Adding /root/.gem/ruby/1.9.2/bin/ to your PATH .."
42
+ echo 'export PATH=$PATH:/root/.gem/ruby/1.9.2/bin' >> /root/.bashrc
43
+ export PATH=$PATH:/root/.gem/ruby/1.9.2/bin
44
+ #. /root/.bashrc
45
+ fi
46
+
47
+ echo "Installing required gems ..."
48
+ for G in ffi multi_json childprocess selenium-webdriver mechanize fxruby net-http-digest_auth net-http-persistent nokogiri domain_name unf webrobots ntlm-http net-http-pipeline nfqueue watobo
49
+ do
50
+ info ">> $G"
51
+ gem install $gem_opts $G
52
+ done
53
+
54
+ echo "Install libnetfilter for transparent proxy mode"
55
+ apt-get install libnetfilter-queue-dev
56
+
57
+ info "Installation finished."
58
+ echo "Open a new shell and type watobo_gui.rb to start WATOBO."
59
+ echo "For manuals/videos and general information about WATOBO please check:"
60
+ echo "* http://watobo.sourceforge.net/"
61
+
@@ -0,0 +1,38 @@
1
+ #!/bin/bash
2
+ # configure your interfaces here
3
+ INT_IN=wlan0
4
+ INT_OUT=eth0
5
+
6
+ echo "= Interface Configuration ="
7
+ echo "Incoming Interface: $INT_IN"
8
+ echo "Outgoing Interface: $INT_OUT"
9
+
10
+ echo "Resetting IPTables ..."
11
+ iptables -F
12
+ iptables -X
13
+ iptables -t nat -F
14
+ iptables -t nat -X
15
+ iptables -t mangle -F
16
+ iptables -t mangle -X
17
+ iptables -P INPUT ACCEPT
18
+ iptables -P FORWARD ACCEPT
19
+ iptables -P OUTPUT ACCEPT
20
+
21
+ echo "Restarting DHCP ..."
22
+ /etc/init.d/dhcp3-server restart
23
+
24
+ echo "Restarting DNS ..."
25
+ /etc/init.d/bind9 restart
26
+
27
+ echo "Enable IP Forwarding ..."
28
+ echo 1 > /proc/sys/net/ipv4/ip_forward
29
+
30
+ echo "Send Packets To NFQUEUE ..."
31
+ iptables -t mangle -A PREROUTING -p tcp -m state --dport 443 --state NEW -j NFQUEUE --queue-num 0
32
+
33
+ echo "Redirect Traffic to WATOBO ..."
34
+ iptables -t nat -A PREROUTING -i $INT_IN -p tcp -m tcp -j REDIRECT --dport 443 --to-ports 8081
35
+ iptables -t nat -A PREROUTING -i $INT_IN -p tcp -m tcp -j REDIRECT --dport 80 --to-ports 8081
36
+
37
+ echo "Turn on Natting ..."
38
+ iptables -t nat -A POSTROUTING -o $INT_OUT -j MASQUERADE
Binary file
Binary file
@@ -1,7 +1,7 @@
1
1
  # .
2
2
  # data_store.rb
3
3
  #
4
- # Copyright 2012 by siberas, http://www.siberas.de
4
+ # Copyright 2013 by siberas, http://www.siberas.de
5
5
  #
6
6
  # This file is part of WATOBO (Web Application Tool Box)
7
7
  # http://watobo.sourceforge.com
@@ -19,7 +19,8 @@
19
19
  # along with WATOBO; if not, write to the Free Software
20
20
  # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
21
  # .
22
- module Watobo
22
+ # @private
23
+ module Watobo#:nodoc: all
23
24
  class DataStore
24
25
 
25
26
  @engine = nil
@@ -28,7 +29,7 @@ module Watobo
28
29
  @engine
29
30
  end
30
31
 
31
- def self.acquire(project_name, session_name)
32
+ def self.connect(project_name, session_name)
32
33
  a = Watobo::Conf::Datastore.adapter
33
34
  store = case
34
35
  when 'file'
@@ -40,10 +41,31 @@ module Watobo
40
41
  store
41
42
  end
42
43
 
44
+ def self.method_missing(name, *args, &block)
45
+ super unless @engine.respond_to? name
46
+ @engine.send name, *args, &block
47
+ end
48
+
43
49
 
44
50
  end
45
51
 
52
+ def self.logs
53
+ return "" if DataStore.engine.nil?
54
+ DataStore.engine.logs
55
+ end
56
+
46
57
  def self.log(message, prefs={})
58
+
59
+ text = message
60
+ if message.is_a? Array
61
+ text = message.join("\n| ")
62
+ end
63
+
64
+ #clean up sender's name
65
+ if prefs.has_key? :sender
66
+ prefs[:sender].gsub!(/.*::/,'')
67
+ end
68
+
47
69
  if DataStore.engine.respond_to? :logger
48
70
  DataStore.engine.logger message, prefs
49
71
  end
@@ -1,7 +1,7 @@
1
1
  # .
2
2
  # file_store.rb
3
3
  #
4
- # Copyright 2012 by siberas, http://www.siberas.de
4
+ # Copyright 2013 by siberas, http://www.siberas.de
5
5
  #
6
6
  # This file is part of WATOBO (Web Application Tool Box)
7
7
  # http://watobo.sourceforge.com
@@ -19,7 +19,8 @@
19
19
  # along with WATOBO; if not, write to the Free Software
20
20
  # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
21
  # .
22
- module Watobo
22
+ # @private
23
+ module Watobo#:nodoc: all
23
24
  class FileSessionStore < SessionStore
24
25
  def num_chats
25
26
  get_file_list(@conversation_path, "*-chat*").length
@@ -149,10 +150,10 @@ module Watobo
149
150
  wsp = Watobo.workspace_path
150
151
  return false unless File.exist? wsp
151
152
  puts "* using workspace path: #{wsp}" if $DEBUG
152
-
153
+
153
154
  @log_file = nil
154
155
  @log_lock = Mutex.new
155
-
156
+
156
157
  @project_path = File.join(wsp, project_name)
157
158
  unless File.exist? @project_path
158
159
  puts "* create project path: #{@project_path}" if $DEBUG
@@ -197,7 +198,7 @@ module Watobo
197
198
  end
198
199
  end
199
200
  end
200
-
201
+
201
202
  @log_file = File.join(@log_path, session_name + ".log")
202
203
 
203
204
  # @chat_files = get_file_list(@conversation_path, "*-chat")
@@ -255,21 +256,29 @@ module Watobo
255
256
  s
256
257
 
257
258
  end
258
-
259
+
260
+ def logs
261
+ l = ''
262
+ @log_lock.synchronize do
263
+ l = File.open(@log_file).read
264
+ end
265
+ l
266
+ end
267
+
259
268
  def logger( message, prefs = {} )
260
269
  opts = { :sender => "unknown", :level => Watobo::Constants::LOG_INFO }
261
270
  opts.update prefs
262
271
  return false if @log_file.nil?
263
272
  begin
264
- t = Time.now
273
+ t = Time.now
265
274
  now = t.strftime("%m/%d/%Y @ %H:%M:%S")
266
275
  log_message = [ now ]
267
276
  log_message << "#{opts[:sender]}"
268
277
  if message.is_a? Array
269
278
  log_message << message.join("\n| ")
270
279
  log_message << "\n-"
271
- else
272
- log_message << message
280
+ else
281
+ log_message << message
273
282
  end
274
283
  @log_lock.synchronize do
275
284
  File.open(@log_file,"a") do |lfh|
@@ -279,8 +288,7 @@ module Watobo
279
288
  rescue => bang
280
289
  puts bang
281
290
  end
282
-
283
-
291
+
284
292
  end
285
293
 
286
294
  private
@@ -1,7 +1,7 @@
1
1
  # .
2
2
  # session_store.rb
3
3
  #
4
- # Copyright 2012 by siberas, http://www.siberas.de
4
+ # Copyright 2013 by siberas, http://www.siberas.de
5
5
  #
6
6
  # This file is part of WATOBO (Web Application Tool Box)
7
7
  # http://watobo.sourceforge.com
@@ -19,7 +19,8 @@
19
19
  # along with WATOBO; if not, write to the Free Software
20
20
  # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
21
  # .
22
- module Watobo
22
+ # @private
23
+ module Watobo#:nodoc: all
23
24
  class SessionStore
24
25
 
25
26
  # TODO: Define default methods here
@@ -1,7 +1,7 @@
1
1
  # .
2
2
  # adapters.rb
3
3
  #
4
- # Copyright 2012 by siberas, http://www.siberas.de
4
+ # Copyright 2013 by siberas, http://www.siberas.de
5
5
  #
6
6
  # This file is part of WATOBO (Web Application Tool Box)
7
7
  # http://watobo.sourceforge.com
data/lib/watobo/ca.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # .
2
2
  # ca.rb
3
3
  #
4
- # Copyright 2012 by siberas, http://www.siberas.de
4
+ # Copyright 2013 by siberas, http://www.siberas.de
5
5
  #
6
6
  # This file is part of WATOBO (Web Application Tool Box)
7
7
  # http://watobo.sourceforge.com
data/lib/watobo/config.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # .
2
2
  # config.rb
3
3
  #
4
- # Copyright 2012 by siberas, http://www.siberas.de
4
+ # Copyright 2013 by siberas, http://www.siberas.de
5
5
  #
6
6
  # This file is part of WATOBO (Web Application Tool Box)
7
7
  # http://watobo.sourceforge.com
@@ -19,7 +19,8 @@
19
19
  # along with WATOBO; if not, write to the Free Software
20
20
  # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
21
  # .
22
- module Watobo
22
+ # @private
23
+ module Watobo#:nodoc: all
23
24
  module Conf
24
25
 
25
26
  @@settings = Hash.new
@@ -33,15 +34,15 @@ module Watobo
33
34
  @@modules.length
34
35
  end
35
36
 
36
- def self.load_project_settings(data_store)
37
+ def self.load_project_settings()
37
38
  @@modules.each do |m|
38
- m.load_project(data_store)
39
+ m.load_project()
39
40
  end
40
41
  end
41
42
 
42
- def self.load_session_settings(data_store)
43
+ def self.load_session_settings()
43
44
  @@modules.each do |m|
44
- m.load_session(data_store)
45
+ m.load_session()
45
46
  end
46
47
  end
47
48
 
@@ -80,29 +81,28 @@ module Watobo
80
81
  @settings = YAML.load(YAML.dump(settings))
81
82
  end
82
83
 
83
- def self.save_session(data_store, *filter, &b)
84
- raise ArgumentError, "Need a valid Watobo::DataStore" unless data_store.respond_to? :save_project_settings
84
+ def self.save_session( *filter, &b)
85
+ #raise ArgumentError, "Need a valid Watobo::DataStore" unless data_store.respond_to? :save_project_settings
85
86
  s = filter_settings filter
86
87
  yield s if block_given?
87
88
  # puts group_name
88
- data_store.save_session_settings( group_name, s )
89
+ Watobo::DataStore.save_session_settings( group_name, s )
89
90
  end
90
91
 
91
- def self.save_project(data_store, *filter, &b)
92
- raise ArgumentError, "Need a valid Watobo::DataStore" unless data_store.respond_to? :save_project_settings
92
+ def self.save_project( *filter, &b)
93
+ # raise ArgumentError, "Need a valid Watobo::DataStore" unless data_store.respond_to? :save_project_settings
93
94
  s = filter_settings filter
94
95
  # puts @settings.to_yaml
95
96
  # puts s.to_yaml
96
- data_store.save_project_settings(group_name, s)
97
+ Watobo::DataStore.save_project_settings(group_name, s)
97
98
  end
98
99
 
99
- def self.load_session(data_store, prefs={}, &b)
100
- raise ArgumentError, "Need a valid Watobo::DataStore" unless data_store.respond_to? :load_project_settings
100
+ def self.load_session(prefs={}, &b)
101
101
 
102
102
  p = { :update => true }
103
103
  p.update prefs
104
104
 
105
- s = data_store.load_session_settings(group_name)
105
+ s = Watobo::DataStore.load_session_settings(group_name)
106
106
  return false if s.nil?
107
107
 
108
108
  if p[:update] == true
@@ -112,13 +112,11 @@ module Watobo
112
112
  end
113
113
  end
114
114
 
115
- def self.load_project(data_store, prefs={}, &b)
116
- raise ArgumentError, "Need a valid Watobo::DataStore" unless data_store.respond_to? :load_project_settings
117
-
115
+ def self.load_project(prefs={}, &b)
118
116
  p = { :update => true }
119
117
  p.update prefs
120
118
 
121
- s = data_store.load_project_settings(group_name)
119
+ s = Watobo::DataStore.load_project_settings(group_name)
122
120
  return false if s.nil?
123
121
 
124
122
  if p[:update] == true
@@ -1,7 +1,7 @@
1
1
  # .
2
2
  # constants.rb
3
3
  #
4
- # Copyright 2012 by siberas, http://www.siberas.de
4
+ # Copyright 2013 by siberas, http://www.siberas.de
5
5
  #
6
6
  # This file is part of WATOBO (Web Application Tool Box)
7
7
  # http://watobo.sourceforge.com
@@ -24,7 +24,8 @@ $debug_active_check = false
24
24
  $debug_scanner = false
25
25
 
26
26
 
27
- module Watobo
27
+ # @private
28
+ module Watobo#:nodoc: all
28
29
  module Constants
29
30
  CHAT_SOURCE_UNDEF = 0x00
30
31
  CHAT_SOURCE_INTERCEPT = 0x01