ronin-web 1.0.2 → 2.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +3 -2
  3. data/.gitignore +1 -0
  4. data/.rubocop.yml +5 -0
  5. data/ChangeLog.md +46 -1
  6. data/Gemfile +25 -12
  7. data/README.md +257 -51
  8. data/Rakefile +9 -0
  9. data/data/completions/ronin-web +203 -0
  10. data/gemspec.yml +18 -5
  11. data/lib/ronin/web/cli/browser_options.rb +92 -0
  12. data/lib/ronin/web/cli/browser_shell.rb +448 -0
  13. data/lib/ronin/web/cli/command.rb +1 -1
  14. data/lib/ronin/web/cli/commands/browser.rb +373 -0
  15. data/lib/ronin/web/cli/commands/completion.rb +63 -0
  16. data/lib/ronin/web/cli/commands/diff.rb +60 -8
  17. data/lib/ronin/web/cli/commands/html.rb +21 -33
  18. data/lib/ronin/web/cli/commands/irb.rb +1 -1
  19. data/lib/ronin/web/cli/commands/new/{webapp.rb → app.rb} +8 -8
  20. data/lib/ronin/web/cli/commands/new/nokogiri.rb +4 -4
  21. data/lib/ronin/web/cli/commands/new/server.rb +1 -1
  22. data/lib/ronin/web/cli/commands/new/spider.rb +1 -1
  23. data/lib/ronin/web/cli/commands/new.rb +5 -3
  24. data/lib/ronin/web/cli/commands/reverse_proxy.rb +1 -1
  25. data/lib/ronin/web/cli/commands/screenshot.rb +186 -0
  26. data/lib/ronin/web/cli/commands/server.rb +1 -1
  27. data/lib/ronin/web/cli/commands/session_cookie.rb +265 -0
  28. data/lib/ronin/web/cli/commands/spider.rb +61 -467
  29. data/lib/ronin/web/cli/commands/user_agent.rb +177 -0
  30. data/lib/ronin/web/cli/commands/vulns.rb +463 -0
  31. data/lib/ronin/web/cli/commands/wordlist.rb +484 -0
  32. data/lib/ronin/web/cli/commands/xml.rb +149 -0
  33. data/lib/ronin/web/cli/js_shell.rb +69 -0
  34. data/lib/ronin/web/cli/ruby_shell.rb +1 -1
  35. data/lib/ronin/web/cli/spider_options.rb +919 -0
  36. data/lib/ronin/web/cli.rb +3 -1
  37. data/lib/ronin/web/html.rb +1 -1
  38. data/lib/ronin/web/root.rb +1 -1
  39. data/lib/ronin/web/version.rb +2 -2
  40. data/lib/ronin/web/xml.rb +1 -1
  41. data/lib/ronin/web.rb +4 -364
  42. data/man/ronin-web-browser.1 +92 -0
  43. data/man/ronin-web-browser.1.md +96 -0
  44. data/man/ronin-web-completion.1 +76 -0
  45. data/man/ronin-web-completion.1.md +78 -0
  46. data/man/ronin-web-diff.1 +14 -21
  47. data/man/ronin-web-diff.1.md +13 -6
  48. data/man/ronin-web-html.1 +30 -46
  49. data/man/ronin-web-html.1.md +27 -17
  50. data/man/ronin-web-irb.1 +9 -16
  51. data/man/ronin-web-irb.1.md +6 -2
  52. data/man/ronin-web-new-app.1.md +39 -0
  53. data/man/ronin-web-new-nokogiri.1 +9 -20
  54. data/man/ronin-web-new-nokogiri.1.md +5 -5
  55. data/man/ronin-web-new-server.1 +11 -23
  56. data/man/ronin-web-new-server.1.md +5 -5
  57. data/man/ronin-web-new-spider.1 +44 -88
  58. data/man/ronin-web-new-spider.1.md +37 -37
  59. data/man/ronin-web-new.1 +18 -30
  60. data/man/ronin-web-new.1.md +15 -11
  61. data/man/ronin-web-reverse-proxy.1 +33 -38
  62. data/man/ronin-web-reverse-proxy.1.md +20 -14
  63. data/man/ronin-web-screenshot.1 +56 -0
  64. data/man/ronin-web-screenshot.1.md +56 -0
  65. data/man/ronin-web-server.1 +15 -29
  66. data/man/ronin-web-server.1.md +13 -9
  67. data/man/ronin-web-session-cookie.1 +38 -0
  68. data/man/ronin-web-session-cookie.1.md +41 -0
  69. data/man/ronin-web-spider.1 +121 -130
  70. data/man/ronin-web-spider.1.md +115 -66
  71. data/man/ronin-web-user-agent.1 +44 -0
  72. data/man/ronin-web-user-agent.1.md +46 -0
  73. data/man/ronin-web-vulns.1 +175 -0
  74. data/man/ronin-web-vulns.1.md +177 -0
  75. data/man/ronin-web-wordlist.1 +258 -0
  76. data/man/ronin-web-wordlist.1.md +263 -0
  77. data/man/ronin-web-xml.1 +43 -0
  78. data/man/ronin-web-xml.1.md +46 -0
  79. data/man/ronin-web.1 +67 -18
  80. data/man/ronin-web.1.md +55 -4
  81. data/scripts/setup +58 -0
  82. metadata +122 -31
  83. data/lib/ronin/web/mechanize.rb +0 -84
  84. data/man/ronin-web-new-webapp.1.md +0 -39
  85. /data/data/new/{webapp → app}/.gitignore +0 -0
  86. /data/data/new/{webapp → app}/.ruby-version.erb +0 -0
  87. /data/data/new/{webapp → app}/Dockerfile.erb +0 -0
  88. /data/data/new/{webapp → app}/Gemfile +0 -0
  89. /data/data/new/{webapp → app}/app.rb.erb +0 -0
  90. /data/data/new/{webapp → app}/config.ru +0 -0
  91. /data/data/new/{webapp → app}/docker-compose.yml.erb +0 -0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ronin-web
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 2.0.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Postmodern
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-04 00:00:00.000000000 Z
11
+ date: 2024-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -25,75 +25,109 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.4'
27
27
  - !ruby/object:Gem::Dependency
28
- name: nokogiri-ext
28
+ name: nokogiri-diff
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.1'
33
+ version: '0.2'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.1'
40
+ version: '0.2'
41
41
  - !ruby/object:Gem::Dependency
42
- name: nokogiri-diff
42
+ name: robots
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.2'
47
+ version: '0.10'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.2'
54
+ version: '0.10'
55
55
  - !ruby/object:Gem::Dependency
56
- name: mechanize
56
+ name: open_namespace
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.0'
61
+ version: '0.4'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.0'
68
+ version: '0.4'
69
69
  - !ruby/object:Gem::Dependency
70
- name: open_namespace
70
+ name: wordlist
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0.4'
75
+ version: '1.0'
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: 1.0.1
76
79
  type: :runtime
77
80
  prerelease: false
78
81
  version_requirements: !ruby/object:Gem::Requirement
79
82
  requirements:
80
83
  - - "~>"
81
84
  - !ruby/object:Gem::Version
82
- version: '0.4'
85
+ version: '1.0'
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 1.0.1
83
89
  - !ruby/object:Gem::Dependency
84
90
  name: ronin-support
85
91
  requirement: !ruby/object:Gem::Requirement
86
92
  requirements:
87
93
  - - "~>"
88
94
  - !ruby/object:Gem::Version
89
- version: '1.0'
95
+ version: 1.1.0.rc1
90
96
  type: :runtime
91
97
  prerelease: false
92
98
  version_requirements: !ruby/object:Gem::Requirement
93
99
  requirements:
94
100
  - - "~>"
95
101
  - !ruby/object:Gem::Version
96
- version: '1.0'
102
+ version: 1.1.0.rc1
103
+ - !ruby/object:Gem::Dependency
104
+ name: ronin-support-web
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: 0.1.0.rc1
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: 0.1.0.rc1
117
+ - !ruby/object:Gem::Dependency
118
+ name: ronin-web-browser
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: 0.1.0.rc1
124
+ type: :runtime
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: 0.1.0.rc1
97
131
  - !ruby/object:Gem::Dependency
98
132
  name: ronin-web-server
99
133
  requirement: !ruby/object:Gem::Requirement
@@ -120,14 +154,14 @@ dependencies:
120
154
  requirements:
121
155
  - - "~>"
122
156
  - !ruby/object:Gem::Version
123
- version: '0.1'
157
+ version: 0.2.0.rc1
124
158
  type: :runtime
125
159
  prerelease: false
126
160
  version_requirements: !ruby/object:Gem::Requirement
127
161
  requirements:
128
162
  - - "~>"
129
163
  - !ruby/object:Gem::Version
130
- version: '0.1'
164
+ version: 0.2.0.rc1
131
165
  - !ruby/object:Gem::Dependency
132
166
  name: ronin-web-user_agents
133
167
  requirement: !ruby/object:Gem::Requirement
@@ -142,20 +176,48 @@ dependencies:
142
176
  - - "~>"
143
177
  - !ruby/object:Gem::Version
144
178
  version: '0.1'
179
+ - !ruby/object:Gem::Dependency
180
+ name: ronin-web-session_cookie
181
+ requirement: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - "~>"
184
+ - !ruby/object:Gem::Version
185
+ version: 0.1.0.rc1
186
+ type: :runtime
187
+ prerelease: false
188
+ version_requirements: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - "~>"
191
+ - !ruby/object:Gem::Version
192
+ version: 0.1.0.rc1
145
193
  - !ruby/object:Gem::Dependency
146
194
  name: ronin-core
147
195
  requirement: !ruby/object:Gem::Requirement
148
196
  requirements:
149
197
  - - "~>"
150
198
  - !ruby/object:Gem::Version
151
- version: '0.1'
199
+ version: 0.2.0.rc1
152
200
  type: :runtime
153
201
  prerelease: false
154
202
  version_requirements: !ruby/object:Gem::Requirement
155
203
  requirements:
156
204
  - - "~>"
157
205
  - !ruby/object:Gem::Version
158
- version: '0.1'
206
+ version: 0.2.0.rc1
207
+ - !ruby/object:Gem::Dependency
208
+ name: ronin-vulns
209
+ requirement: !ruby/object:Gem::Requirement
210
+ requirements:
211
+ - - "~>"
212
+ - !ruby/object:Gem::Version
213
+ version: 0.2.0.rc1
214
+ type: :runtime
215
+ prerelease: false
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - "~>"
219
+ - !ruby/object:Gem::Version
220
+ version: 0.2.0.rc1
159
221
  - !ruby/object:Gem::Dependency
160
222
  name: bundler
161
223
  requirement: !ruby/object:Gem::Requirement
@@ -196,43 +258,60 @@ files:
196
258
  - README.md
197
259
  - Rakefile
198
260
  - bin/ronin-web
261
+ - data/completions/ronin-web
262
+ - data/new/app/.gitignore
263
+ - data/new/app/.ruby-version.erb
264
+ - data/new/app/Dockerfile.erb
265
+ - data/new/app/Gemfile
266
+ - data/new/app/app.rb.erb
267
+ - data/new/app/config.ru
268
+ - data/new/app/docker-compose.yml.erb
199
269
  - data/new/nokogiri.rb.erb
200
270
  - data/new/server.rb.erb
201
271
  - data/new/spider.rb.erb
202
- - data/new/webapp/.gitignore
203
- - data/new/webapp/.ruby-version.erb
204
- - data/new/webapp/Dockerfile.erb
205
- - data/new/webapp/Gemfile
206
- - data/new/webapp/app.rb.erb
207
- - data/new/webapp/config.ru
208
- - data/new/webapp/docker-compose.yml.erb
209
272
  - gemspec.yml
210
273
  - lib/ronin/web.rb
211
274
  - lib/ronin/web/cli.rb
275
+ - lib/ronin/web/cli/browser_options.rb
276
+ - lib/ronin/web/cli/browser_shell.rb
212
277
  - lib/ronin/web/cli/command.rb
278
+ - lib/ronin/web/cli/commands/browser.rb
279
+ - lib/ronin/web/cli/commands/completion.rb
213
280
  - lib/ronin/web/cli/commands/diff.rb
214
281
  - lib/ronin/web/cli/commands/html.rb
215
282
  - lib/ronin/web/cli/commands/irb.rb
216
283
  - lib/ronin/web/cli/commands/new.rb
284
+ - lib/ronin/web/cli/commands/new/app.rb
217
285
  - lib/ronin/web/cli/commands/new/nokogiri.rb
218
286
  - lib/ronin/web/cli/commands/new/server.rb
219
287
  - lib/ronin/web/cli/commands/new/spider.rb
220
- - lib/ronin/web/cli/commands/new/webapp.rb
221
288
  - lib/ronin/web/cli/commands/reverse_proxy.rb
289
+ - lib/ronin/web/cli/commands/screenshot.rb
222
290
  - lib/ronin/web/cli/commands/server.rb
291
+ - lib/ronin/web/cli/commands/session_cookie.rb
223
292
  - lib/ronin/web/cli/commands/spider.rb
293
+ - lib/ronin/web/cli/commands/user_agent.rb
294
+ - lib/ronin/web/cli/commands/vulns.rb
295
+ - lib/ronin/web/cli/commands/wordlist.rb
296
+ - lib/ronin/web/cli/commands/xml.rb
297
+ - lib/ronin/web/cli/js_shell.rb
224
298
  - lib/ronin/web/cli/ruby_shell.rb
299
+ - lib/ronin/web/cli/spider_options.rb
225
300
  - lib/ronin/web/html.rb
226
- - lib/ronin/web/mechanize.rb
227
301
  - lib/ronin/web/root.rb
228
302
  - lib/ronin/web/version.rb
229
303
  - lib/ronin/web/xml.rb
304
+ - man/ronin-web-browser.1
305
+ - man/ronin-web-browser.1.md
306
+ - man/ronin-web-completion.1
307
+ - man/ronin-web-completion.1.md
230
308
  - man/ronin-web-diff.1
231
309
  - man/ronin-web-diff.1.md
232
310
  - man/ronin-web-html.1
233
311
  - man/ronin-web-html.1.md
234
312
  - man/ronin-web-irb.1
235
313
  - man/ronin-web-irb.1.md
314
+ - man/ronin-web-new-app.1.md
236
315
  - man/ronin-web-new-nokogiri.1
237
316
  - man/ronin-web-new-nokogiri.1.md
238
317
  - man/ronin-web-new-server.1
@@ -240,18 +319,30 @@ files:
240
319
  - man/ronin-web-new-spider.1
241
320
  - man/ronin-web-new-spider.1.md
242
321
  - man/ronin-web-new-webapp.1
243
- - man/ronin-web-new-webapp.1.md
244
322
  - man/ronin-web-new.1
245
323
  - man/ronin-web-new.1.md
246
324
  - man/ronin-web-reverse-proxy.1
247
325
  - man/ronin-web-reverse-proxy.1.md
326
+ - man/ronin-web-screenshot.1
327
+ - man/ronin-web-screenshot.1.md
248
328
  - man/ronin-web-server.1
249
329
  - man/ronin-web-server.1.md
330
+ - man/ronin-web-session-cookie.1
331
+ - man/ronin-web-session-cookie.1.md
250
332
  - man/ronin-web-spider.1
251
333
  - man/ronin-web-spider.1.md
334
+ - man/ronin-web-user-agent.1
335
+ - man/ronin-web-user-agent.1.md
336
+ - man/ronin-web-vulns.1
337
+ - man/ronin-web-vulns.1.md
338
+ - man/ronin-web-wordlist.1
339
+ - man/ronin-web-wordlist.1.md
340
+ - man/ronin-web-xml.1
341
+ - man/ronin-web-xml.1.md
252
342
  - man/ronin-web.1
253
343
  - man/ronin-web.1.md
254
344
  - ronin-web.gemspec
345
+ - scripts/setup
255
346
  homepage: https://github.com/ronin-rb/ronin-web#readme
256
347
  licenses:
257
348
  - GPL-3.0
@@ -271,7 +362,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
271
362
  - !ruby/object:Gem::Version
272
363
  version: '0'
273
364
  requirements: []
274
- rubygems_version: 3.3.26
365
+ rubygems_version: 3.3.27
275
366
  signing_key:
276
367
  specification_version: 4
277
368
  summary: A collection of common web security commands and libraries.
@@ -1,84 +0,0 @@
1
- # frozen_string_literal: true
2
- #
3
- # ronin-web - A collection of useful web helper methods and commands.
4
- #
5
- # Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
6
- #
7
- # ronin-web is free software: you can redistribute it and/or modify
8
- # it under the terms of the GNU General Public License as published by
9
- # the Free Software Foundation, either version 3 of the License, or
10
- # (at your option) any later version.
11
- #
12
- # ronin-web is distributed in the hope that it will be useful,
13
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
- # GNU General Public License for more details.
16
- #
17
- # You should have received a copy of the GNU General Public License
18
- # along with ronin-web. If not, see <https://www.gnu.org/licenses/>.
19
- #
20
-
21
- require 'ronin/support/network/http'
22
-
23
- require 'mechanize'
24
-
25
- module Ronin
26
- module Web
27
- #
28
- # Convenience class based on Mechanize.
29
- #
30
- # @see http://rubydoc.info/gems/mechanize/Mechanize
31
- #
32
- class Mechanize < ::Mechanize
33
-
34
- #
35
- # Creates a new [Mechanize] Agent.
36
- #
37
- # [Mechanize]: https://github.com/sparklemotion/mechanize#readme
38
- #
39
- # @param [Network::HTTP::Proxy, Hash, String] proxy
40
- # Proxy information.
41
- #
42
- # @param [String, :random, :chrome, :chrome_linux, :chrome_macos,
43
- # :chrome_windows, :chrome_iphone, :chrome_ipad,
44
- # :chrome_android, :firefox, :firefox_linux, :firefox_macos,
45
- # :firefox_windows, :firefox_iphone, :firefox_ipad,
46
- # :firefox_android, :safari, :safari_macos, :safari_iphone,
47
- # :safari_ipad, :edge, :linux, :macos, :windows, :iphone,
48
- # :ipad, :android, nil] user_agent
49
- # The `User-Agent` string to use.
50
- #
51
- # @yield [agent]
52
- # If a block is given, it will be passed the newly created Mechanize
53
- # agent.
54
- #
55
- # @yieldparam [Mechanize] agent
56
- # The new Mechanize agent.
57
- #
58
- def initialize(proxy: Support::Network::HTTP.proxy,
59
- user_agent: Support::Network::HTTP.user_agent)
60
- super()
61
-
62
- self.verify_mode = OpenSSL::SSL::VERIFY_NONE
63
-
64
- if proxy
65
- proxy = URI(proxy)
66
-
67
- set_proxy(proxy.host,proxy.port,proxy.user,proxy.password)
68
- end
69
-
70
- if user_agent
71
- self.user_agent = case user_agent
72
- when Symbol
73
- Support::Network::HTTP::UserAgents[user_agent]
74
- else
75
- user_agent
76
- end
77
- end
78
-
79
- yield self if block_given?
80
- end
81
-
82
- end
83
- end
84
- end
@@ -1,39 +0,0 @@
1
- # ronin-web-new-webapp 1 "May 2022" Ronin "User Manuals"
2
-
3
- ## SYNOPSIS
4
-
5
- `ronin-web new webapp` [*options*] [*DIR*]
6
-
7
- ## DESCRIPTION
8
-
9
- Generates a new `ronin-web-server` based webapp.
10
-
11
- ## ARGUMENTS
12
-
13
- *DIR*
14
- The project directory to create.
15
-
16
- ## OPTIONS
17
-
18
- `--port` *PORT*
19
- The port the webapp will listen on by default. Defaults to `3000`.
20
-
21
- `--ruby-version` *VERSION*
22
- The desired ruby version for the project Defaults to the current ruby version.
23
-
24
- `--git`
25
- Initializes a git repo.
26
-
27
- `-D`, `--dockerfile`
28
- Adds a `Dockerfile` and a `docker-compose.yml` file to the new project.
29
-
30
- `-h`, `--help`
31
- Print help information
32
-
33
- ## AUTHOR
34
-
35
- Postmodern <postmodern.mod3@gmail.com>
36
-
37
- ## SEE ALSO
38
-
39
- ronin-web-new-nokogiri(1) ronin-web-new-server(1) ronin-web-new-spider(1)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes