wwmd 0.2.20.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. data/History.txt +38 -0
  2. data/README.rdoc +87 -0
  3. data/Rakefile +33 -0
  4. data/examples/config_example.yaml +24 -0
  5. data/examples/wwmd_example.rb +73 -0
  6. data/lib/wwmd.rb +84 -0
  7. data/lib/wwmd/class_extensions.rb +4 -0
  8. data/lib/wwmd/class_extensions/extensions_base.rb +251 -0
  9. data/lib/wwmd/class_extensions/extensions_encoding.rb +79 -0
  10. data/lib/wwmd/class_extensions/extensions_external.rb +18 -0
  11. data/lib/wwmd/class_extensions/extensions_nilclass.rb +11 -0
  12. data/lib/wwmd/class_extensions/extensions_rbkb.rb +193 -0
  13. data/lib/wwmd/class_extensions/mixins_string_encoding.rb +40 -0
  14. data/lib/wwmd/guid.rb +155 -0
  15. data/lib/wwmd/page.rb +3 -0
  16. data/lib/wwmd/page/_fa.old +302 -0
  17. data/lib/wwmd/page/auth.rb +17 -0
  18. data/lib/wwmd/page/constants.rb +63 -0
  19. data/lib/wwmd/page/form.rb +99 -0
  20. data/lib/wwmd/page/form_array.rb +304 -0
  21. data/lib/wwmd/page/headers.rb +118 -0
  22. data/lib/wwmd/page/helpers.rb +41 -0
  23. data/lib/wwmd/page/html2text_hpricot.rb +76 -0
  24. data/lib/wwmd/page/html2text_nokogiri.rb +42 -0
  25. data/lib/wwmd/page/inputs.rb +47 -0
  26. data/lib/wwmd/page/irb_helpers.rb +114 -0
  27. data/lib/wwmd/page/page.rb +257 -0
  28. data/lib/wwmd/page/parsing_convenience.rb +98 -0
  29. data/lib/wwmd/page/reporting_helpers.rb +89 -0
  30. data/lib/wwmd/page/scrape.rb +196 -0
  31. data/lib/wwmd/page/spider.rb +127 -0
  32. data/lib/wwmd/urlparse.rb +125 -0
  33. data/lib/wwmd/viewstate.rb +17 -0
  34. data/lib/wwmd/viewstate/viewstate.rb +101 -0
  35. data/lib/wwmd/viewstate/viewstate_deserializer_methods.rb +217 -0
  36. data/lib/wwmd/viewstate/viewstate_from_xml.rb +129 -0
  37. data/lib/wwmd/viewstate/viewstate_types.rb +51 -0
  38. data/lib/wwmd/viewstate/viewstate_utils.rb +164 -0
  39. data/lib/wwmd/viewstate/viewstate_yaml.rb +25 -0
  40. data/lib/wwmd/viewstate/vs_stubs.rb +22 -0
  41. data/lib/wwmd/viewstate/vs_stubs/vs_array.rb +38 -0
  42. data/lib/wwmd/viewstate/vs_stubs/vs_binary_serialized.rb +30 -0
  43. data/lib/wwmd/viewstate/vs_stubs/vs_hashtable.rb +42 -0
  44. data/lib/wwmd/viewstate/vs_stubs/vs_hybrid_dict.rb +42 -0
  45. data/lib/wwmd/viewstate/vs_stubs/vs_indexed_string.rb +6 -0
  46. data/lib/wwmd/viewstate/vs_stubs/vs_indexed_string_ref.rb +24 -0
  47. data/lib/wwmd/viewstate/vs_stubs/vs_int_enum.rb +27 -0
  48. data/lib/wwmd/viewstate/vs_stubs/vs_list.rb +34 -0
  49. data/lib/wwmd/viewstate/vs_stubs/vs_pair.rb +29 -0
  50. data/lib/wwmd/viewstate/vs_stubs/vs_read_types.rb +11 -0
  51. data/lib/wwmd/viewstate/vs_stubs/vs_read_value.rb +35 -0
  52. data/lib/wwmd/viewstate/vs_stubs/vs_sparse_array.rb +58 -0
  53. data/lib/wwmd/viewstate/vs_stubs/vs_string.rb +33 -0
  54. data/lib/wwmd/viewstate/vs_stubs/vs_string_array.rb +39 -0
  55. data/lib/wwmd/viewstate/vs_stubs/vs_string_formatted.rb +32 -0
  56. data/lib/wwmd/viewstate/vs_stubs/vs_stub_helpers.rb +37 -0
  57. data/lib/wwmd/viewstate/vs_stubs/vs_triplet.rb +31 -0
  58. data/lib/wwmd/viewstate/vs_stubs/vs_type.rb +23 -0
  59. data/lib/wwmd/viewstate/vs_stubs/vs_unit.rb +30 -0
  60. data/lib/wwmd/viewstate/vs_stubs/vs_value.rb +35 -0
  61. data/lib/wwmd/wwmd_config.rb +52 -0
  62. data/lib/wwmd/wwmd_puts.rb +9 -0
  63. data/lib/wwmd/wwmd_utils.rb +28 -0
  64. data/spec/README +3 -0
  65. data/spec/form_array.spec +49 -0
  66. data/spec/spider_csrf_test.spec +28 -0
  67. data/spec/urlparse_test.spec +101 -0
  68. data/tasks/ann.rake +80 -0
  69. data/tasks/bones.rake +20 -0
  70. data/tasks/gem.rake +201 -0
  71. data/tasks/git.rake +40 -0
  72. data/tasks/notes.rake +27 -0
  73. data/tasks/post_load.rake +34 -0
  74. data/tasks/rdoc.rake +51 -0
  75. data/tasks/rubyforge.rake +55 -0
  76. data/tasks/setup.rb +292 -0
  77. data/tasks/spec.rake +54 -0
  78. data/tasks/test.rake +40 -0
  79. data/tasks/zentest.rake +36 -0
  80. metadata +222 -0
@@ -0,0 +1,54 @@
1
+
2
+ if HAVE_SPEC_RAKE_SPECTASK and not PROJ.spec.files.to_a.empty?
3
+ require 'spec/rake/verify_rcov'
4
+
5
+ namespace :spec do
6
+
7
+ desc 'Run all specs with basic output'
8
+ Spec::Rake::SpecTask.new(:run) do |t|
9
+ t.ruby_opts = PROJ.ruby_opts
10
+ t.spec_opts = PROJ.spec.opts
11
+ t.spec_files = PROJ.spec.files
12
+ t.libs += PROJ.libs
13
+ end
14
+
15
+ desc 'Run all specs with text output'
16
+ Spec::Rake::SpecTask.new(:specdoc) do |t|
17
+ t.ruby_opts = PROJ.ruby_opts
18
+ t.spec_opts = PROJ.spec.opts + ['--format', 'specdoc']
19
+ t.spec_files = PROJ.spec.files
20
+ t.libs += PROJ.libs
21
+ end
22
+
23
+ if HAVE_RCOV
24
+ desc 'Run all specs with RCov'
25
+ Spec::Rake::SpecTask.new(:rcov) do |t|
26
+ t.ruby_opts = PROJ.ruby_opts
27
+ t.spec_opts = PROJ.spec.opts
28
+ t.spec_files = PROJ.spec.files
29
+ t.libs += PROJ.libs
30
+ t.rcov = true
31
+ t.rcov_dir = PROJ.rcov.dir
32
+ t.rcov_opts = PROJ.rcov.opts + ['--exclude', 'spec']
33
+ end
34
+
35
+ RCov::VerifyTask.new(:verify) do |t|
36
+ t.threshold = PROJ.rcov.threshold
37
+ t.index_html = File.join(PROJ.rcov.dir, 'index.html')
38
+ t.require_exact_threshold = PROJ.rcov.threshold_exact
39
+ end
40
+
41
+ task :verify => :rcov
42
+ remove_desc_for_task %w(spec:clobber_rcov)
43
+ end
44
+
45
+ end # namespace :spec
46
+
47
+ desc 'Alias to spec:run'
48
+ task :spec => 'spec:run'
49
+
50
+ task :clobber => 'spec:clobber_rcov' if HAVE_RCOV
51
+
52
+ end # if HAVE_SPEC_RAKE_SPECTASK
53
+
54
+ # EOF
@@ -0,0 +1,40 @@
1
+
2
+ if test(?e, PROJ.test.file) or not PROJ.test.files.to_a.empty?
3
+ require 'rake/testtask'
4
+
5
+ namespace :test do
6
+
7
+ Rake::TestTask.new(:run) do |t|
8
+ t.libs = PROJ.libs
9
+ t.test_files = if test(?f, PROJ.test.file) then [PROJ.test.file]
10
+ else PROJ.test.files end
11
+ t.ruby_opts += PROJ.ruby_opts
12
+ t.ruby_opts += PROJ.test.opts
13
+ end
14
+
15
+ if HAVE_RCOV
16
+ desc 'Run rcov on the unit tests'
17
+ task :rcov => :clobber_rcov do
18
+ opts = PROJ.rcov.opts.dup << '-o' << PROJ.rcov.dir
19
+ opts = opts.join(' ')
20
+ files = if test(?f, PROJ.test.file) then [PROJ.test.file]
21
+ else PROJ.test.files end
22
+ files = files.join(' ')
23
+ sh "#{RCOV} #{files} #{opts}"
24
+ end
25
+
26
+ task :clobber_rcov do
27
+ rm_r 'coverage' rescue nil
28
+ end
29
+ end
30
+
31
+ end # namespace :test
32
+
33
+ desc 'Alias to test:run'
34
+ task :test => 'test:run'
35
+
36
+ task :clobber => 'test:clobber_rcov' if HAVE_RCOV
37
+
38
+ end
39
+
40
+ # EOF
@@ -0,0 +1,36 @@
1
+ if HAVE_ZENTEST
2
+
3
+ # --------------------------------------------------------------------------
4
+ if test(?e, PROJ.test.file) or not PROJ.test.files.to_a.empty?
5
+ require 'autotest'
6
+
7
+ namespace :test do
8
+ task :autotest do
9
+ Autotest.run
10
+ end
11
+ end
12
+
13
+ desc "Run the autotest loop"
14
+ task :autotest => 'test:autotest'
15
+
16
+ end # if test
17
+
18
+ # --------------------------------------------------------------------------
19
+ if HAVE_SPEC_RAKE_SPECTASK and not PROJ.spec.files.to_a.empty?
20
+ require 'autotest/rspec'
21
+
22
+ namespace :spec do
23
+ task :autotest do
24
+ load '.autotest' if test(?f, '.autotest')
25
+ Autotest::Rspec.run
26
+ end
27
+ end
28
+
29
+ desc "Run the autotest loop"
30
+ task :autotest => 'spec:autotest'
31
+
32
+ end # if rspec
33
+
34
+ end # if HAVE_ZENTEST
35
+
36
+ # EOF
metadata ADDED
@@ -0,0 +1,222 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: wwmd
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 2
8
+ - 20
9
+ - 3
10
+ version: 0.2.20.3
11
+ platform: ruby
12
+ authors:
13
+ - Michael L. Tracy
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-03-16 00:00:00 -05:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: ruby-debug
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
30
+ - 10
31
+ - 3
32
+ version: 0.10.3
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: curb
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ segments:
43
+ - 0
44
+ - 4
45
+ - 8
46
+ - 0
47
+ version: 0.4.8.0
48
+ type: :runtime
49
+ version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
51
+ name: nokogiri
52
+ prerelease: false
53
+ requirement: &id003 !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ segments:
58
+ - 1
59
+ - 4
60
+ - 1
61
+ version: 1.4.1
62
+ type: :runtime
63
+ version_requirements: *id003
64
+ - !ruby/object:Gem::Dependency
65
+ name: bones
66
+ prerelease: false
67
+ requirement: &id004 !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ segments:
72
+ - 2
73
+ - 5
74
+ - 1
75
+ version: 2.5.1
76
+ type: :development
77
+ version_requirements: *id004
78
+ description: |-
79
+ WWMD was originally intended to provide a console helper tool for
80
+ conducting web application security assessments (which is something I
81
+ find myself doing alot of). I've spent alot of time and had alot of
82
+ success writing application specific fuzzers + scrapers to test with.
83
+ WWMD provides a base of useful code to help you work with web sites both
84
+ in IRB and by writing scripts that can be as generic or as application
85
+ specific as you choose.
86
+
87
+ There's alot of helpful stuff crammed in here and its usage has evolved
88
+ alot. It's not intended to replace, remove or be better than any of the
89
+ tools you currently use. In fact, WWMD works best *with* the tools you
90
+ currently use to get stuff done. You get convenience methods for
91
+ getting, scraping, spidering, decoding, decrypting and munging user
92
+ inputs, pages and web applications.
93
+
94
+ It doesn't try to be smart. That's up to you.
95
+
96
+ What's here is the basic framework for getting started. There's a raft
97
+ of cookbook scripts and examples that are coming soon so make sure you
98
+ check the wiki regularly.
99
+ email: mtracy@matasano.com
100
+ executables: []
101
+
102
+ extensions: []
103
+
104
+ extra_rdoc_files:
105
+ - History.txt
106
+ - README.rdoc
107
+ - lib/wwmd/page/_fa.old
108
+ files:
109
+ - History.txt
110
+ - README.rdoc
111
+ - Rakefile
112
+ - examples/config_example.yaml
113
+ - examples/wwmd_example.rb
114
+ - lib/wwmd.rb
115
+ - lib/wwmd/class_extensions.rb
116
+ - lib/wwmd/class_extensions/extensions_base.rb
117
+ - lib/wwmd/class_extensions/extensions_encoding.rb
118
+ - lib/wwmd/class_extensions/extensions_external.rb
119
+ - lib/wwmd/class_extensions/extensions_nilclass.rb
120
+ - lib/wwmd/class_extensions/extensions_rbkb.rb
121
+ - lib/wwmd/class_extensions/mixins_string_encoding.rb
122
+ - lib/wwmd/guid.rb
123
+ - lib/wwmd/page.rb
124
+ - lib/wwmd/page/_fa.old
125
+ - lib/wwmd/page/auth.rb
126
+ - lib/wwmd/page/constants.rb
127
+ - lib/wwmd/page/form.rb
128
+ - lib/wwmd/page/form_array.rb
129
+ - lib/wwmd/page/headers.rb
130
+ - lib/wwmd/page/helpers.rb
131
+ - lib/wwmd/page/html2text_hpricot.rb
132
+ - lib/wwmd/page/html2text_nokogiri.rb
133
+ - lib/wwmd/page/inputs.rb
134
+ - lib/wwmd/page/irb_helpers.rb
135
+ - lib/wwmd/page/page.rb
136
+ - lib/wwmd/page/parsing_convenience.rb
137
+ - lib/wwmd/page/reporting_helpers.rb
138
+ - lib/wwmd/page/scrape.rb
139
+ - lib/wwmd/page/spider.rb
140
+ - lib/wwmd/urlparse.rb
141
+ - lib/wwmd/viewstate.rb
142
+ - lib/wwmd/viewstate/viewstate.rb
143
+ - lib/wwmd/viewstate/viewstate_deserializer_methods.rb
144
+ - lib/wwmd/viewstate/viewstate_from_xml.rb
145
+ - lib/wwmd/viewstate/viewstate_types.rb
146
+ - lib/wwmd/viewstate/viewstate_utils.rb
147
+ - lib/wwmd/viewstate/viewstate_yaml.rb
148
+ - lib/wwmd/viewstate/vs_stubs.rb
149
+ - lib/wwmd/viewstate/vs_stubs/vs_array.rb
150
+ - lib/wwmd/viewstate/vs_stubs/vs_binary_serialized.rb
151
+ - lib/wwmd/viewstate/vs_stubs/vs_hashtable.rb
152
+ - lib/wwmd/viewstate/vs_stubs/vs_hybrid_dict.rb
153
+ - lib/wwmd/viewstate/vs_stubs/vs_indexed_string.rb
154
+ - lib/wwmd/viewstate/vs_stubs/vs_indexed_string_ref.rb
155
+ - lib/wwmd/viewstate/vs_stubs/vs_int_enum.rb
156
+ - lib/wwmd/viewstate/vs_stubs/vs_list.rb
157
+ - lib/wwmd/viewstate/vs_stubs/vs_pair.rb
158
+ - lib/wwmd/viewstate/vs_stubs/vs_read_types.rb
159
+ - lib/wwmd/viewstate/vs_stubs/vs_read_value.rb
160
+ - lib/wwmd/viewstate/vs_stubs/vs_sparse_array.rb
161
+ - lib/wwmd/viewstate/vs_stubs/vs_string.rb
162
+ - lib/wwmd/viewstate/vs_stubs/vs_string_array.rb
163
+ - lib/wwmd/viewstate/vs_stubs/vs_string_formatted.rb
164
+ - lib/wwmd/viewstate/vs_stubs/vs_stub_helpers.rb
165
+ - lib/wwmd/viewstate/vs_stubs/vs_triplet.rb
166
+ - lib/wwmd/viewstate/vs_stubs/vs_type.rb
167
+ - lib/wwmd/viewstate/vs_stubs/vs_unit.rb
168
+ - lib/wwmd/viewstate/vs_stubs/vs_value.rb
169
+ - lib/wwmd/wwmd_config.rb
170
+ - lib/wwmd/wwmd_puts.rb
171
+ - lib/wwmd/wwmd_utils.rb
172
+ - spec/README
173
+ - spec/form_array.spec
174
+ - spec/spider_csrf_test.spec
175
+ - spec/urlparse_test.spec
176
+ - tasks/ann.rake
177
+ - tasks/bones.rake
178
+ - tasks/gem.rake
179
+ - tasks/git.rake
180
+ - tasks/notes.rake
181
+ - tasks/post_load.rake
182
+ - tasks/rdoc.rake
183
+ - tasks/rubyforge.rake
184
+ - tasks/setup.rb
185
+ - tasks/spec.rake
186
+ - tasks/test.rake
187
+ - tasks/zentest.rake
188
+ has_rdoc: true
189
+ homepage: http://github.com/miketracy/wwmd/tree/master
190
+ licenses: []
191
+
192
+ post_install_message:
193
+ rdoc_options:
194
+ - --main
195
+ - README.rdoc
196
+ require_paths:
197
+ - lib
198
+ required_ruby_version: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ segments:
203
+ - 0
204
+ version: "0"
205
+ required_rubygems_version: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ segments:
210
+ - 0
211
+ version: "0"
212
+ requirements: []
213
+
214
+ rubyforge_project: !binary |
215
+ AA==
216
+
217
+ rubygems_version: 1.3.6
218
+ signing_key:
219
+ specification_version: 3
220
+ summary: WWMD was originally intended to provide a console helper tool for conducting web application security assessments (which is something I find myself doing alot of)
221
+ test_files: []
222
+