ronin-web 1.0.2 → 2.0.0.rc1

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