watobo 0.9.9.pre2 → 0.9.9.pre3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +4 -1
- data/lib/watobo/core/project.rb +4 -0
- data/lib/watobo/core/session.rb +3 -3
- data/lib/watobo/gui/main_window.rb +41 -5
- data/lib/watobo/gui/manual_request_editor.rb +1 -1
- data/lib/watobo/gui/table_editor.rb +1 -1
- data/lib/watobo/gui/utils/save_default_settings.rb +5 -0
- data/lib/watobo/mixins/httpparser.rb +1 -0
- data/lib/watobo.rb +1 -1
- data/plugins/crawler/gui/general_settings_frame.rb +1 -1
- data/plugins/crawler/gui/hooks_frame.rb +1 -1
- metadata +2 -2
data/CHANGELOG
CHANGED
@@ -5,13 +5,16 @@
|
|
5
5
|
* ConversationTable: values in coloumn Parameters are url-decoded
|
6
6
|
* Added a WebCrawler Plugin based on Mechanize
|
7
7
|
* Manual Request Editor: Url is displayed in the window title
|
8
|
+
* Menubar items are disabled if no project is defined
|
8
9
|
|
9
10
|
== Fixes
|
10
11
|
* CA Directory is now created in WATOBO working directory '.watobo'
|
11
12
|
* Fixed Crash on opening client-certificate dialog
|
12
13
|
* ConversationTable: GET and POST parameters are shown in the parameters coloumn
|
13
14
|
* TreeView-Pane: Show full conversation list when Findings tab is selected
|
14
|
-
*
|
15
|
+
* Fixed a bug in parsing post parameters
|
16
|
+
* Also some minor bugs
|
17
|
+
|
15
18
|
|
16
19
|
= Version 0.9.8
|
17
20
|
== NEW
|
data/lib/watobo/core/project.rb
CHANGED
@@ -435,8 +435,10 @@ module Watobo
|
|
435
435
|
|
436
436
|
def uniqueRequestHash(request)
|
437
437
|
begin
|
438
|
+
extend_request(request) unless request.respond_to? :site
|
438
439
|
hashbase = request.site + request.method + request.path
|
439
440
|
request.get_parm_names.sort.each do |p|
|
441
|
+
# puts "URL-Parm: #{p}"
|
440
442
|
if @scan_settings[:non_unique_parms].include?(p) then
|
441
443
|
hashbase += p + request.get_parm_value(p)
|
442
444
|
else
|
@@ -445,6 +447,7 @@ module Watobo
|
|
445
447
|
|
446
448
|
end
|
447
449
|
request.post_parm_names.sort.each do |p|
|
450
|
+
# puts "POST-Parm: #{p}"
|
448
451
|
if @scan_settings[:non_unique_parms].include?(p) then
|
449
452
|
hashbase += p + request.post_parm_value(p)
|
450
453
|
else
|
@@ -452,6 +455,7 @@ module Watobo
|
|
452
455
|
end
|
453
456
|
|
454
457
|
end
|
458
|
+
# puts hashbase
|
455
459
|
return Digest::MD5.hexdigest(hashbase)
|
456
460
|
rescue => bang
|
457
461
|
puts bang
|
data/lib/watobo/core/session.rb
CHANGED
@@ -350,9 +350,9 @@ include Watobo::Constants
|
|
350
350
|
updateCSRFToken(csrf_cache, copy)
|
351
351
|
socket, csrf_request, csrf_response = sendHTTPRequest(copy, opts)
|
352
352
|
next if socket.nil?
|
353
|
-
|
354
|
-
|
355
|
-
|
353
|
+
# puts "= Response Headers:"
|
354
|
+
# puts csrf_response
|
355
|
+
# puts "==="
|
356
356
|
update_sids(csrf_request.host, csrf_response.headers)
|
357
357
|
next if socket.nil?
|
358
358
|
# p "*"
|
@@ -425,7 +425,8 @@ module Watobo
|
|
425
425
|
puts ccdlg.client_certificates.to_yaml
|
426
426
|
@project.client_certificates = ccdlg.client_certificates
|
427
427
|
@iproxy.client_certificates = ccdlg.client_certificates
|
428
|
-
|
428
|
+
# saveProjectSettings(@project)
|
429
|
+
Watobo::Gui.save_settings()
|
429
430
|
# Watobo::Gui.save_default_settings(@project)
|
430
431
|
|
431
432
|
end
|
@@ -650,6 +651,7 @@ module Watobo
|
|
650
651
|
@last_request = nil
|
651
652
|
@last_response = nil
|
652
653
|
@iproxy.stop if @iproxy
|
654
|
+
disable_menu
|
653
655
|
|
654
656
|
end
|
655
657
|
|
@@ -694,6 +696,7 @@ module Watobo
|
|
694
696
|
def startProject(project)
|
695
697
|
|
696
698
|
return false unless project.is_a? Project
|
699
|
+
enable_menu
|
697
700
|
|
698
701
|
puts "DEBUG: starting project" if $DEBUG
|
699
702
|
@project = project
|
@@ -956,7 +959,8 @@ module Watobo
|
|
956
959
|
if dlg.execute != 0 then
|
957
960
|
# puts dlg.scanner_settings.to_yaml
|
958
961
|
@project.updateSettings(YAML.load(YAML.dump(dlg.scanner_settings)))
|
959
|
-
|
962
|
+
# saveProjectSettings(@project)
|
963
|
+
Watobo::Gui.save_settings()
|
960
964
|
|
961
965
|
end
|
962
966
|
else
|
@@ -981,7 +985,8 @@ module Watobo
|
|
981
985
|
dlg = Watobo::Gui::EditScopeDialog.new(self, @project, LAYOUT_FILL_X|LAYOUT_FILL_Y)
|
982
986
|
if dlg.execute != 0 then
|
983
987
|
@project.scope = YAML.load(YAML.dump(dlg.scope))
|
984
|
-
|
988
|
+
# saveProjectSettings(@project)
|
989
|
+
Watobo::Gui.save_settings()
|
985
990
|
refreshViewers()
|
986
991
|
end
|
987
992
|
end
|
@@ -1157,7 +1162,9 @@ module Watobo
|
|
1157
1162
|
|
1158
1163
|
menu_bar = FXMenuBar.new(self, :opts => LAYOUT_SIDE_TOP|LAYOUT_FILL_X)
|
1159
1164
|
|
1165
|
+
@menu_items = []
|
1160
1166
|
file_menu_pane = FXMenuPane.new(self)
|
1167
|
+
|
1161
1168
|
FXMenuTitle.new(menu_bar, "File" , :popupMenu => file_menu_pane)
|
1162
1169
|
@file_new_menu = FXMenuCommand.new(file_menu_pane, "New/Open" )
|
1163
1170
|
@file_new_menu.connect(SEL_COMMAND, method(:onNewProject))
|
@@ -1190,6 +1197,7 @@ module Watobo
|
|
1190
1197
|
# file_save_as_command = FXMenuCommand.new(file_menu_pane, "Save As..." )
|
1191
1198
|
|
1192
1199
|
settings_menu_pane = FXMenuPane.new(self)
|
1200
|
+
@menu_items << settings_menu_pane
|
1193
1201
|
FXMenuTitle.new(menu_bar, "Settings" , :popupMenu => settings_menu_pane)
|
1194
1202
|
menu_proxy = FXMenuCommand.new(settings_menu_pane, "Forwarding Proxy..." )
|
1195
1203
|
menu_session = FXMenuCommand.new(settings_menu_pane, "Session Management..." )
|
@@ -1226,10 +1234,12 @@ module Watobo
|
|
1226
1234
|
FXMenuTitle.new(menu_bar, "Tools" , :popupMenu => tools_menu_pane)
|
1227
1235
|
transcoder = FXMenuCommand.new(tools_menu_pane, "Transcoder")
|
1228
1236
|
interceptor = FXMenuCommand.new(tools_menu_pane, "Interceptor")
|
1237
|
+
@menu_items << interceptor
|
1229
1238
|
transcoder.connect(SEL_COMMAND, method(:onOpenTranscoder))
|
1230
1239
|
interceptor.connect(SEL_COMMAND, method(:onOpenInterceptor))
|
1231
1240
|
|
1232
1241
|
view_menu_pane = FXMenuPane.new(self)
|
1242
|
+
@menu_items << view_menu_pane
|
1233
1243
|
FXMenuTitle.new(menu_bar, "View" , :popupMenu => view_menu_pane)
|
1234
1244
|
view_logs_command = FXMenuCommand.new(view_menu_pane, "Logs" )
|
1235
1245
|
view_dashboard_command = FXMenuCommand.new(view_menu_pane, "Dashboard" )
|
@@ -1240,6 +1250,7 @@ module Watobo
|
|
1240
1250
|
view_findings_command.connect(SEL_COMMAND, method(:showConversation))
|
1241
1251
|
|
1242
1252
|
window_menu_pane = FXMenuPane.new(self)
|
1253
|
+
@menu_items << window_menu_pane
|
1243
1254
|
FXMenuTitle.new(menu_bar, "Window" , :popupMenu => window_menu_pane)
|
1244
1255
|
use_small_icons = FXMenuCheck.new(window_menu_pane, "Small Icons/Text" )
|
1245
1256
|
use_small_icons.connect(SEL_COMMAND) {
|
@@ -1595,6 +1606,7 @@ module Watobo
|
|
1595
1606
|
# if @foption_nocss.checked? then @doctype_TableFilter.concat(@fext_style);end
|
1596
1607
|
|
1597
1608
|
add_queue_timer(50)
|
1609
|
+
disable_menu
|
1598
1610
|
end
|
1599
1611
|
|
1600
1612
|
def create
|
@@ -1650,8 +1662,9 @@ module Watobo
|
|
1650
1662
|
}
|
1651
1663
|
|
1652
1664
|
project.subscribe(:settings_changed){
|
1653
|
-
|
1654
|
-
|
1665
|
+
# saveProjectSettings(project)
|
1666
|
+
# saveSessionSettings(project)
|
1667
|
+
Watobo::Gui.save_settings()
|
1655
1668
|
}
|
1656
1669
|
end
|
1657
1670
|
|
@@ -1813,6 +1826,29 @@ module Watobo
|
|
1813
1826
|
end
|
1814
1827
|
end
|
1815
1828
|
|
1829
|
+
def disable_menu
|
1830
|
+
@menu_items.each do |e|
|
1831
|
+
e.disable if e.respond_to? :disable
|
1832
|
+
if e.respond_to? :each_child
|
1833
|
+
e.each_child do |c|
|
1834
|
+
c.disable if c.respond_to? :disable
|
1835
|
+
end
|
1836
|
+
end
|
1837
|
+
end
|
1838
|
+
end
|
1839
|
+
|
1840
|
+
def enable_menu
|
1841
|
+
@menu_items.each do |e|
|
1842
|
+
e.enable if e.respond_to? :enable
|
1843
|
+
if e.respond_to? :each_child
|
1844
|
+
e.each_child do |c|
|
1845
|
+
c.enable if c.respond_to? :enable
|
1846
|
+
end
|
1847
|
+
end
|
1848
|
+
end
|
1849
|
+
|
1850
|
+
end
|
1851
|
+
|
1816
1852
|
def purge_findings(findings)
|
1817
1853
|
return false if @project.nil?
|
1818
1854
|
findings.each do |f|
|
@@ -44,6 +44,11 @@ module Watobo
|
|
44
44
|
|
45
45
|
Watobo::Conf::General.save_project(Watobo.project.session_store)
|
46
46
|
Watobo::Conf::Interceptor.save_project(Watobo.project.session_store)
|
47
|
+
|
48
|
+
# also save global settings here
|
49
|
+
Watobo::Conf::General.save
|
50
|
+
Watobo::Conf::Interceptor.save
|
51
|
+
|
47
52
|
return true
|
48
53
|
rescue => bang
|
49
54
|
puts bang
|
data/lib/watobo.rb
CHANGED
@@ -96,7 +96,7 @@ module Watobo
|
|
96
96
|
fxtext = FXText.new(iframe, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y|TEXT_WORDWRAP)
|
97
97
|
fxtext.backColor = fxtext.parent.backColor
|
98
98
|
fxtext.disable
|
99
|
-
text = "To speed up the crawl process and to save
|
99
|
+
text = "To speed up the crawl process and to save bandwidth it is recommended to use HEAD requests for specific document extensions."
|
100
100
|
text << "The response to a HEAD request only includes the http headers but no body. The extensions pattern is defined as an regular expression,"
|
101
101
|
text << "e.g. '(pdf|swf|doc|flv|jpg|png|gif)' - without single quotes."
|
102
102
|
|
@@ -76,7 +76,7 @@ module Watobo
|
|
76
76
|
fxtext = FXText.new(frame, :opts => LAYOUT_FILL_X|TEXT_WORDWRAP)
|
77
77
|
fxtext.backColor = fxtext.parent.backColor
|
78
78
|
fxtext.disable
|
79
|
-
text = "You can define a script which gets executed just before each connection. So you are able modify the Mechanize::Agent and Mechanize::Requests just before the request is
|
79
|
+
text = "You can define a script which gets executed just before each connection. So you are able to modify the Mechanize::Agent and Mechanize::Requests just before the request is sent to the server.\n"
|
80
80
|
text << "For more information about pre_connection_hooks check the Mechanize homepage (http://mechanize.rubyforge.org/)."
|
81
81
|
|
82
82
|
fxtext.setText(text)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: watobo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.9.
|
4
|
+
version: 0.9.9.pre3
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-07-
|
12
|
+
date: 2012-07-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: mechanize
|