wwmd 0.2.20.3

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 (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
+