ronin-web 2.0.0.rc1 → 2.0.1

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +1 -0
  3. data/.ruby-version +1 -1
  4. data/ChangeLog.md +18 -3
  5. data/README.md +1 -1
  6. data/data/completions/ronin-web +80 -68
  7. data/gemspec.yml +8 -8
  8. data/lib/ronin/web/cli/browser_options.rb +1 -1
  9. data/lib/ronin/web/cli/browser_shell.rb +3 -2
  10. data/lib/ronin/web/cli/command.rb +3 -3
  11. data/lib/ronin/web/cli/commands/browser.rb +5 -5
  12. data/lib/ronin/web/cli/commands/completion.rb +3 -2
  13. data/lib/ronin/web/cli/commands/diff.rb +3 -3
  14. data/lib/ronin/web/cli/commands/html.rb +3 -3
  15. data/lib/ronin/web/cli/commands/irb.rb +3 -3
  16. data/lib/ronin/web/cli/commands/new/app.rb +3 -3
  17. data/lib/ronin/web/cli/commands/new/nokogiri.rb +3 -3
  18. data/lib/ronin/web/cli/commands/new/server.rb +3 -3
  19. data/lib/ronin/web/cli/commands/new/spider.rb +3 -3
  20. data/lib/ronin/web/cli/commands/new.rb +3 -2
  21. data/lib/ronin/web/cli/commands/reverse_proxy.rb +3 -2
  22. data/lib/ronin/web/cli/commands/screenshot.rb +3 -3
  23. data/lib/ronin/web/cli/commands/server.rb +4 -3
  24. data/lib/ronin/web/cli/commands/session_cookie.rb +3 -2
  25. data/lib/ronin/web/cli/commands/spider.rb +4 -3
  26. data/lib/ronin/web/cli/commands/user_agent.rb +3 -2
  27. data/lib/ronin/web/cli/commands/vulns.rb +4 -3
  28. data/lib/ronin/web/cli/commands/wordlist.rb +4 -4
  29. data/lib/ronin/web/cli/commands/xml.rb +3 -3
  30. data/lib/ronin/web/cli/js_shell.rb +1 -1
  31. data/lib/ronin/web/cli/ruby_shell.rb +1 -1
  32. data/lib/ronin/web/cli/spider_options.rb +1 -1
  33. data/lib/ronin/web/cli.rb +3 -2
  34. data/lib/ronin/web/root.rb +1 -1
  35. data/lib/ronin/web/version.rb +2 -2
  36. data/lib/ronin/web.rb +4 -2
  37. data/man/ronin-web-xml.1 +1 -1
  38. data/man/ronin-web-xml.1.md +1 -1
  39. data/ronin-web.gemspec +1 -0
  40. metadata +24 -21
  41. data/lib/ronin/web/html.rb +0 -86
  42. data/lib/ronin/web/xml.rb +0 -86
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8bd87f5c3602ae1ece1f09ff4d689221c41e63b1302f9edf58576a3aec06108e
4
- data.tar.gz: 5fa836bd013ea5b74a4b79fbda0fc4dd84ac09d9abafea689aba504c3decb32e
3
+ metadata.gz: c49b1797684e1ac9ca6e158ee6824ff7352804ab9914543824527ba89ab57a98
4
+ data.tar.gz: 443f7a5344f9a16ee8ec1e3904aab4a165be8bcad47eae45a4eb1cddccaa44a3
5
5
  SHA512:
6
- metadata.gz: b56e783acb097f2c43f7c144f5bb5225a060b48000b458ba098280a8bd690d0831141ead1c00d3cafba1922428022d36643bba780c483400c27ac3d05af3ce65
7
- data.tar.gz: c78a468778822cbe8dfc0d3efa845d08471e1440fecfa849784b54bd8719bb4c8abca4568213df8de961acfafa85beb33f13dc853a1480dfafc3f37127a308b2
6
+ metadata.gz: ff88d3d3e069383c427ebbb874cbc1e2e4abeae71f768958a19f810f33fdcd8ab9a02ba16d9c014e41a6235392313605b86bfe2c87cce8534e3aa0bb56dfa4c6
7
+ data.tar.gz: d113ad11be8cdab75cd68b028e96c5d3fd87eef348fb24b852acea6dcdbe1edbfb947e8afcbcb6e288b23513d6536bf7f3d6352aa761ae6104039a20c964e69e
@@ -13,6 +13,7 @@ jobs:
13
13
  - '3.1'
14
14
  - '3.2'
15
15
  - '3.3'
16
+ - '3.4'
16
17
  # - jruby
17
18
  - truffleruby
18
19
  name: Ruby ${{ matrix.ruby }}
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- ruby-3.1
1
+ ruby-3.3
data/ChangeLog.md CHANGED
@@ -1,4 +1,19 @@
1
- ### 2.0.0 / 2024-XX-XX
1
+ ### 2.0.1 / 2025-02-14
2
+
3
+ * Removed legacy 1.x Ruby files:
4
+ * `ronin/web/html` - This file was moved to [ronin-support-web] and renamed to
5
+ `ronin/support/web/html`.
6
+ * `ronin/web/xml` - This file was moved to [ronin-support-web] and renamed to
7
+ `ronin/support/web/xml`.
8
+ * Require all other `ronin-web-*` libraries in `ronin/web`.
9
+ * Use `require_relative` to improve load times.
10
+
11
+ #### CLI
12
+
13
+ * Fixed a bug in the `ronin-web server` command where the query params of
14
+ requests were not being displayed.
15
+
16
+ ### 2.0.0 / 2024-07-22
2
17
 
3
18
  * Require [wordlist] ~> 1.0, >= 1.0.1.
4
19
  * Require [ronin-support-web] ~> 0.1.
@@ -69,8 +84,8 @@
69
84
  * Added the `ronin-web reverse-proxy` command.
70
85
  * Added the `ronin-web server` command.
71
86
  * Added the `ronin-web spider` command.
72
- * Added {Ronin::Web::HTML}.
73
- * Added {Ronin::Web::XML}.
87
+ * Added `Ronin::Web::HTML`.
88
+ * Added `Ronin::Web::XML`.
74
89
 
75
90
  [nokogiri-ext]: https://github.com/postmodern/nokogiri-ext#readme
76
91
  [nokogiri-diff]: https://github.com/postmodern/nokogiri-diff#readme
data/README.md CHANGED
@@ -624,7 +624,7 @@ $ gem install ronin-web
624
624
 
625
625
  ronin-web - A collection of useful web helper methods and commands.
626
626
 
627
- Copyright (c) 2006-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
627
+ Copyright (c) 2006-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
628
628
 
629
629
  ronin-web is free software: you can redistribute it and/or modify
630
630
  it under the terms of the GNU General Public License as published by
@@ -11,7 +11,7 @@ _ronin-web_completions_filter() {
11
11
 
12
12
  if [[ "${cur:0:1}" == "-" ]]; then
13
13
  echo "$words"
14
-
14
+
15
15
  else
16
16
  for word in $words; do
17
17
  [[ "${word:0:1}" != "-" ]] && result+=("$word")
@@ -29,175 +29,187 @@ _ronin-web_completions() {
29
29
 
30
30
  case "$compline" in
31
31
  'browser'*'--inject-js-file')
32
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A file -- "$cur" )
32
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A file -- "$cur")
33
33
  ;;
34
34
 
35
- 'screenshot'*'--directory')
36
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A directory -- "$cur" )
35
+ 'wordlist'*'--ignore-host')
36
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A hostname -- "$cur")
37
37
  ;;
38
38
 
39
- 'wordlist'*'--ignore-host')
40
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A hostname -- "$cur" )
39
+ 'screenshot'*'--directory')
40
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A directory -- "$cur")
41
41
  ;;
42
42
 
43
43
  'wordlist'*'--visit-host')
44
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A hostname -- "$cur" )
44
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A hostname -- "$cur")
45
45
  ;;
46
46
 
47
- 'reverse-proxy'*'--host')
48
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A hostname -- "$cur" )
47
+ 'spider'*'--git-archive')
48
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A directory -- "$cur")
49
49
  ;;
50
50
 
51
51
  'spider'*'--ignore-host')
52
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A hostname -- "$cur" )
52
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A hostname -- "$cur")
53
53
  ;;
54
54
 
55
- 'spider'*'--git-archive')
56
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A directory -- "$cur" )
55
+ 'reverse-proxy'*'--host')
56
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A hostname -- "$cur")
57
57
  ;;
58
58
 
59
59
  'spider'*'--visit-host')
60
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A hostname -- "$cur" )
60
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A hostname -- "$cur")
61
61
  ;;
62
62
 
63
63
  'vulns'*'--ignore-host')
64
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A hostname -- "$cur" )
64
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A hostname -- "$cur")
65
65
  ;;
66
66
 
67
67
  'vulns'*'--visit-host')
68
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A hostname -- "$cur" )
68
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A hostname -- "$cur")
69
69
  ;;
70
70
 
71
71
  'screenshot'*'--file')
72
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A file -- "$cur" )
72
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A file -- "$cur")
73
+ ;;
74
+
75
+ 'wordlist'*'--output')
76
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A file -A directory -- "$cur")
77
+ ;;
78
+
79
+ 'spider'*'--archive')
80
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A directory -- "$cur")
73
81
  ;;
74
82
 
75
83
  'reverse-proxy'*'-H')
76
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A hostname -- "$cur" )
84
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A hostname -- "$cur")
77
85
  ;;
78
86
 
79
87
  'spider'*'--history')
80
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A file -- "$cur" )
88
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A file -- "$cur")
81
89
  ;;
82
90
 
83
- 'spider'*'--archive')
84
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A directory -- "$cur" )
91
+ 'wordlist'*'--host')
92
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A hostname -- "$cur")
85
93
  ;;
86
94
 
87
- 'wordlist'*'--host')
88
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A hostname -- "$cur" )
95
+ 'vulns'*'--db-file')
96
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A file -A directory -- "$cur")
89
97
  ;;
90
98
 
91
99
  'session_cookie'*)
92
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_ronin-web_completions_filter "--verbose -v --format -F")" -- "$cur" )
100
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "$(_ronin-web_completions_filter "--verbose -v --format -F")" -- "$cur")
93
101
  ;;
94
102
 
95
- 'reverse-proxy'*)
96
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_ronin-web_completions_filter "--host -H --port -p --show-body -b --rewrite-requests --rewrite-responses")" -- "$cur" )
103
+ 'spider'*'--host')
104
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A hostname -- "$cur")
97
105
  ;;
98
106
 
99
- 'screenshot'*'-f')
100
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A file -- "$cur" )
107
+ 'server'*'--root')
108
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A directory -- "$cur")
109
+ ;;
110
+
111
+ 'server'*'--host')
112
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A hostname -- "$cur")
101
113
  ;;
102
114
 
103
115
  'screenshot'*'-d')
104
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A directory -- "$cur" )
116
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A directory -- "$cur")
105
117
  ;;
106
118
 
107
- 'server'*'--host')
108
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A hostname -- "$cur" )
119
+ 'screenshot'*'-f')
120
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A file -- "$cur")
109
121
  ;;
110
122
 
111
- 'server'*'--root')
112
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A directory -- "$cur" )
123
+ 'reverse-proxy'*)
124
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "$(_ronin-web_completions_filter "--host -H --port -p --show-body -b --rewrite-requests --rewrite-responses")" -- "$cur")
113
125
  ;;
114
126
 
115
- 'spider'*'--host')
116
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A hostname -- "$cur" )
127
+ 'vulns'*'--host')
128
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A hostname -- "$cur")
117
129
  ;;
118
130
 
119
131
  'new nokogiri'*)
120
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A file -W "$(_ronin-web_completions_filter "--url -U")" -- "$cur" )
132
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A file -W "$(_ronin-web_completions_filter "--url -U")" -- "$cur")
121
133
  ;;
122
134
 
123
- 'vulns'*'--host')
124
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A hostname -- "$cur" )
135
+ 'wordlist'*'-o')
136
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A file -A directory -- "$cur")
125
137
  ;;
126
138
 
127
- 'completion'*)
128
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_ronin-web_completions_filter "--print --install --uninstall")" -- "$cur" )
139
+ 'user_agent'*)
140
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "$(_ronin-web_completions_filter "--browser -B --chrome-version --firefox-version --linux-distro -D --arch -A --os -O --os-version")" -- "$cur")
129
141
  ;;
130
142
 
131
143
  'new server'*)
132
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A file -W "$(_ronin-web_completions_filter "--host -H --port -p")" -- "$cur" )
144
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A file -W "$(_ronin-web_completions_filter "--host -H --port -p")" -- "$cur")
133
145
  ;;
134
146
 
135
- 'new spider'*)
136
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A file -W "$(_ronin-web_completions_filter "--host --domain --site --every-link --every-url --every-failed-url --every-url-like --all-headers --every-page --every-ok-page --every-redirect-page --every-timedout-page --every-bad-request-page --every-unauthorized-page --every-forbidden-page --every-missing-page --every-internal-server-error-page --every-txt-page --every-html-page --every-xml-page --every-xsl-page --every-javascript-page --every-css-page --every-rss-page --every-atom-page --every-ms-word-page --every-pdf-page --every-zip-page --every-doc --every-html-doc --every-xml-doc --every-xsl-doc --every-rss-doc --every-atom-doc")" -- "$cur" )
147
+ 'completion'*)
148
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "$(_ronin-web_completions_filter "--print --install --uninstall")" -- "$cur")
137
149
  ;;
138
150
 
139
151
  'screenshot'*)
140
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_ronin-web_completions_filter "--browser -B --width -W --height -H --file -f --format -F --directory -d --full --css-path -C")" -- "$cur" )
152
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "$(_ronin-web_completions_filter "--browser -B --width -W --height -H --file -f --format -F --directory -d --full --css-path -C")" -- "$cur")
141
153
  ;;
142
154
 
143
- 'user_agent'*)
144
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_ronin-web_completions_filter "--browser -B --chrome-version --firefox-version --linux-distro -D --arch -A --os -O --os-version")" -- "$cur" )
145
- ;;
146
-
147
- 'server'*'-H')
148
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A hostname -- "$cur" )
155
+ 'new spider'*)
156
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A file -W "$(_ronin-web_completions_filter "--host --domain --site --every-link --every-url --every-failed-url --every-url-like --all-headers --every-page --every-ok-page --every-redirect-page --every-timedout-page --every-bad-request-page --every-unauthorized-page --every-forbidden-page --every-missing-page --every-internal-server-error-page --every-txt-page --every-html-page --every-xml-page --every-xsl-page --every-javascript-page --every-css-page --every-rss-page --every-atom-page --every-ms-word-page --every-pdf-page --every-zip-page --every-doc --every-html-doc --every-xml-doc --every-xsl-doc --every-rss-doc --every-atom-doc")" -- "$cur")
149
157
  ;;
150
158
 
151
159
  'server'*'-r')
152
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A directory -- "$cur" )
160
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A directory -- "$cur")
153
161
  ;;
154
162
 
155
- 'wordlist'*)
156
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_ronin-web_completions_filter "--host --domain --site --open-timeout --read-timeout --ssl-timeout --continue-timeout --keep-alive-timeout --proxy -P --header -H --host-header --user-agent-string -U --user-agent -u --referer -R --delay -d --limit -l --max-depth -d --enqueue --visited --strip-fragments --strip-query --visit-scheme --visit-schemes-like --ignore-scheme --ignore-schemes-like --visit-host --visit-hosts-like --ignore-host --ignore-hosts-like --visit-port --visit-ports-like --ignore-port --ignore-ports-like --visit-link --visit-links-like --ignore-link --ignore-links-like --visit-ext --visit-exts-like --ignore-ext --ignore-exts-like --robots -r --output -o --content-xpath -X --content-css-path -C --meta-tags --no-meta-tags --comments --no-comments --alt-tags --no-alt-tags --paths --query-params-names --query-param-values --only-paths --only-query-param --only-query-param-values --format -f --append -A --lang -L --stop-word --ignore-word --digits --no-digits --special-char --numbers --no-numbers --acronyms --no-acronyms --normalize-case --no-normalize-case --normalize-apostrophes --no-normalize-apostrophes --normalize-acronyms --no-normalize-acronyms")" -- "$cur" )
163
+ 'server'*'-H')
164
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A hostname -- "$cur")
157
165
  ;;
158
166
 
159
- 'browser'*)
160
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_ronin-web_completions_filter "--browser -B --width -W --height -H --headless --visible --x -x --y -y --inject-js --inject-js-file --bypass-csp --print-urls --print-status --print-requests --print-responses --print-traffic --print-headers --print-cookies --print-body --shell --js-shell")" -- "$cur" )
167
+ 'wordlist'*)
168
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "$(_ronin-web_completions_filter "--host --domain --site --open-timeout --read-timeout --ssl-timeout --continue-timeout --keep-alive-timeout --proxy -P --header -H --host-header --user-agent-string -U --user-agent -u --referer -R --delay -d --limit -l --max-depth -d --enqueue --visited --strip-fragments --strip-query --visit-scheme --visit-schemes-like --ignore-scheme --ignore-schemes-like --visit-host --visit-hosts-like --ignore-host --ignore-hosts-like --visit-port --visit-ports-like --ignore-port --ignore-ports-like --visit-link --visit-links-like --ignore-link --ignore-links-like --visit-ext --visit-exts-like --ignore-ext --ignore-exts-like --robots -r --output -o --content-xpath -X --content-css-path -C --meta-tags --no-meta-tags --comments --no-comments --alt-tags --no-alt-tags --paths --query-params-names --query-param-values --only-paths --only-query-param --only-query-param-values --format -f --append -A --lang -L --stop-word --ignore-word --digits --no-digits --special-char --numbers --no-numbers --acronyms --no-acronyms --normalize-case --no-normalize-case --normalize-apostrophes --no-normalize-apostrophes --normalize-acronyms --no-normalize-acronyms")" -- "$cur")
161
169
  ;;
162
170
 
163
171
  'new app'*)
164
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -A directory -W "$(_ronin-web_completions_filter "--port --ruby-version --git --dockerfile -D")" -- "$cur" )
172
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -A directory -W "$(_ronin-web_completions_filter "--port --ruby-version --git --dockerfile -D")" -- "$cur")
165
173
  ;;
166
174
 
167
- 'server'*)
168
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_ronin-web_completions_filter "--host -H --port -p --basic-auth -A --dir -d --file -f --root -r --redirect -R")" -- "$cur" )
175
+ 'browser'*)
176
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "$(_ronin-web_completions_filter "--browser -B --width -W --height -H --headless --visible --x -x --y -y --inject-js --inject-js-file --bypass-csp --print-urls --print-status --print-requests --print-responses --print-traffic --print-headers --print-cookies --print-body --shell --js-shell")" -- "$cur")
169
177
  ;;
170
178
 
171
179
  'spider'*)
172
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_ronin-web_completions_filter "--host --domain --site --open-timeout --read-timeout --ssl-timeout --continue-timeout --keep-alive-timeout --proxy -P --header -H --host-header --user-agent-string -U --user-agent -u --referer -R --delay -d --limit -l --max-depth -d --enqueue --visited --strip-fragments --strip-query --visit-scheme --visit-schemes-like --ignore-scheme --ignore-schemes-like --visit-host --visit-hosts-like --ignore-host --ignore-hosts-like --visit-port --visit-ports-like --ignore-port --ignore-ports-like --visit-link --visit-links-like --ignore-link --ignore-links-like --visit-ext --visit-exts-like --ignore-ext --ignore-exts-like --robots -r --verbose -v --print-stauts --print-headers --print-header --history --archive --git-archive --xpath -X --css-path -C --print-hosts --print-certs --save-certs --print-js-strings --print-js-url-strings --print-js-path-strings --print-js-absolute-path-strings --print-js-relative-path-strings --print-html-comments --print-js-comments --print-comments")" -- "$cur" )
180
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "$(_ronin-web_completions_filter "--host --domain --site --open-timeout --read-timeout --ssl-timeout --continue-timeout --keep-alive-timeout --proxy -P --header -H --host-header --user-agent-string -U --user-agent -u --referer -R --delay -d --limit -l --max-depth -d --enqueue --visited --strip-fragments --strip-query --visit-scheme --visit-schemes-like --ignore-scheme --ignore-schemes-like --visit-host --visit-hosts-like --ignore-host --ignore-hosts-like --visit-port --visit-ports-like --ignore-port --ignore-ports-like --visit-link --visit-links-like --ignore-link --ignore-links-like --visit-ext --visit-exts-like --ignore-ext --ignore-exts-like --robots -r --verbose -v --print-stauts --print-headers --print-header --history --archive --git-archive --xpath -X --css-path -C --print-hosts --print-certs --save-certs --print-js-strings --print-js-url-strings --print-js-path-strings --print-js-absolute-path-strings --print-js-relative-path-strings --print-html-comments --print-js-comments --print-comments")" -- "$cur")
173
181
  ;;
174
182
 
175
- 'vulns'*)
176
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_ronin-web_completions_filter "--host --domain --site --open-timeout --read-timeout --ssl-timeout --continue-timeout --keep-alive-timeout --proxy -P --header -H --host-header --user-agent-string -U --user-agent -u --referer -R --delay -d --limit -l --max-depth -d --enqueue --visited --strip-fragments --strip-query --visit-scheme --visit-schemes-like --ignore-scheme --ignore-schemes-like --visit-host --visit-hosts-like --ignore-host --ignore-hosts-like --visit-port --visit-ports-like --ignore-port --ignore-ports-like --visit-link --visit-links-like --ignore-link --ignore-links-like --visit-ext --visit-exts-like --ignore-ext --ignore-exts-like --robots -r --db --db-uri --db-file --first -F --all -A --print-curl --print-http --import --lfi-os --lfi-depth --lfi-filter-bypass --rfi-filter-bypass --rfi-script-lang --rfi-test-script-url --sqli-escape-quote --sqli-escape-parens --sqli-terminate --ssti-test-expr --open-redirect-url")" -- "$cur" )
183
+ 'server'*)
184
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "$(_ronin-web_completions_filter "--host -H --port -p --basic-auth -A --dir -d --file -f --root -r --redirect -R")" -- "$cur")
177
185
  ;;
178
186
 
179
- 'diff'*)
180
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_ronin-web_completions_filter "--format -f")" -- "$cur" )
187
+ 'vulns'*)
188
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "$(_ronin-web_completions_filter "--host --domain --site --open-timeout --read-timeout --ssl-timeout --continue-timeout --keep-alive-timeout --proxy -P --header -H --host-header --user-agent-string -U --user-agent -u --referer -R --delay -d --limit -l --max-depth -d --enqueue --visited --strip-fragments --strip-query --visit-scheme --visit-schemes-like --ignore-scheme --ignore-schemes-like --visit-host --visit-hosts-like --ignore-host --ignore-hosts-like --visit-port --visit-ports-like --ignore-port --ignore-ports-like --visit-link --visit-links-like --ignore-link --ignore-links-like --visit-ext --visit-exts-like --ignore-ext --ignore-exts-like --robots -r --db --db-uri --db-file --first -F --all -A --print-curl --print-http --import --lfi-os --lfi-depth --lfi-filter-bypass --rfi-filter-bypass --rfi-script-lang --rfi-test-script-url --sqli-escape-quote --sqli-escape-parens --sqli-terminate --ssti-test-expr --open-redirect-url")" -- "$cur")
181
189
  ;;
182
190
 
183
191
  'html'*)
184
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_ronin-web_completions_filter "--xpath -X --first -F --text -t --css-path -C --meta-tags -M --links -l --style -S --stylesheet-urls -s --javascript -J --javascript-urls -j --form-urls -f --urls -u")" -- "$cur" )
192
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "$(_ronin-web_completions_filter "--xpath -X --first -F --text -t --css-path -C --meta-tags -M --links -l --style -S --stylesheet-urls -s --javascript -J --javascript-urls -j --form-urls -f --urls -u")" -- "$cur")
185
193
  ;;
186
194
 
187
- 'new'*)
188
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_ronin-web_completions_filter "help app nokogiri server spider")" -- "$cur" )
195
+ 'diff'*)
196
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "$(_ronin-web_completions_filter "--format -f")" -- "$cur")
189
197
  ;;
190
198
 
191
199
  'xml'*)
192
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_ronin-web_completions_filter "--xpath -X --first -F --text -t")" -- "$cur" )
200
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "$(_ronin-web_completions_filter "--xpath -X --first -F --text -t")" -- "$cur")
201
+ ;;
202
+
203
+ 'new'*)
204
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "$(_ronin-web_completions_filter "help app nokogiri server spider")" -- "$cur")
193
205
  ;;
194
206
 
195
207
  *)
196
- while read -r; do COMPREPLY+=( "$REPLY" ); done < <( compgen -W "$(_ronin-web_completions_filter "--version -V help browser completion diff html irb new reverse-proxy screenshot server session-cookie spider user-agent vulns wordlist xml")" -- "$cur" )
208
+ while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "$(_ronin-web_completions_filter "--version -V help browser completion diff html irb new reverse-proxy screenshot server session-cookie spider user-agent vulns wordlist xml")" -- "$cur")
197
209
  ;;
198
210
 
199
211
  esac
200
212
  } &&
201
- complete -F _ronin-web_completions ronin-web
213
+ complete -F _ronin-web_completions ronin-web
202
214
 
203
215
  # ex: filetype=sh
data/gemspec.yml CHANGED
@@ -4,7 +4,7 @@ description:
4
4
  ronin-web is a Ruby library that provides common web security commands and
5
5
  additional libraries.
6
6
 
7
- license: GPL-3.0
7
+ license: GPL-3.0-or-later
8
8
  authors: Postmodern
9
9
  email: postmodern.mod3@gmail.com
10
10
  homepage: https://github.com/ronin-rb/ronin-web#readme
@@ -49,15 +49,15 @@ dependencies:
49
49
  open_namespace: ~> 0.4
50
50
  wordlist: ~> 1.0, >= 1.0.1
51
51
  # Ronin dependencies:
52
- ronin-support: ~> 1.1.0.rc1
53
- ronin-support-web: ~> 0.1.0.rc1
54
- ronin-web-browser: ~> 0.1.0.rc1
52
+ ronin-support: ~> 1.1
53
+ ronin-support-web: ~> 0.1
54
+ ronin-web-browser: ~> 0.1
55
55
  ronin-web-server: ~> 0.1, >= 0.1.1
56
- ronin-web-spider: ~> 0.2.0.rc1
56
+ ronin-web-spider: ~> 0.2
57
57
  ronin-web-user_agents: ~> 0.1
58
- ronin-web-session_cookie: ~> 0.1.0.rc1
59
- ronin-core: ~> 0.2.0.rc1
60
- ronin-vulns: ~> 0.2.0.rc1
58
+ ronin-web-session_cookie: ~> 0.1
59
+ ronin-core: ~> 0.2
60
+ ronin-vulns: ~> 0.2
61
61
 
62
62
  development_dependencies:
63
63
  bundler: ~> 2.0
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # ronin-web - A collection of useful web helper methods and commands.
4
4
  #
5
- # Copyright (c) 2006-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
5
+ # Copyright (c) 2006-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
6
6
  #
7
7
  # ronin-web is free software: you can redistribute it and/or modify
8
8
  # it under the terms of the GNU General Public License as published by
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # ronin-web - A collection of useful web helper methods and commands.
4
4
  #
5
- # Copyright (c) 2006-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
5
+ # Copyright (c) 2006-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
6
6
  #
7
7
  # ronin-web is free software: you can redistribute it and/or modify
8
8
  # it under the terms of the GNU General Public License as published by
@@ -19,9 +19,10 @@
19
19
  #
20
20
 
21
21
  require 'ronin/core/cli/command_shell'
22
- require 'ronin/web/cli/js_shell'
23
22
  require 'ronin/web/browser'
24
23
 
24
+ require_relative 'js_shell'
25
+
25
26
  module Ronin
26
27
  module Web
27
28
  class CLI
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # ronin-web - A collection of useful web helper methods and commands.
4
4
  #
5
- # Copyright (c) 2006-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
5
+ # Copyright (c) 2006-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
6
6
  #
7
7
  # ronin-web is free software: you can redistribute it and/or modify
8
8
  # it under the terms of the GNU General Public License as published by
@@ -18,10 +18,10 @@
18
18
  # along with ronin-web. If not, see <https://www.gnu.org/licenses/>.
19
19
  #
20
20
 
21
- require 'ronin/web/root'
22
-
23
21
  require 'ronin/core/cli/command'
24
22
 
23
+ require_relative '../root'
24
+
25
25
  module Ronin
26
26
  module Web
27
27
  class CLI
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # ronin-web - A collection of useful web helper methods and commands.
4
4
  #
5
- # Copyright (c) 2006-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
5
+ # Copyright (c) 2006-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
6
6
  #
7
7
  # ronin-web is free software: you can redistribute it and/or modify
8
8
  # it under the terms of the GNU General Public License as published by
@@ -18,10 +18,10 @@
18
18
  # along with ronin-web. If not, see <https://www.gnu.org/licenses/>.
19
19
  #
20
20
 
21
- require 'ronin/web/cli/command'
22
- require 'ronin/web/cli/browser_options'
23
- require 'ronin/web/cli/browser_shell'
24
- require 'ronin/web/cli/js_shell'
21
+ require_relative '../command'
22
+ require_relative '../browser_options'
23
+ require_relative '../browser_shell'
24
+ require_relative '../js_shell'
25
25
 
26
26
  require 'command_kit/colors'
27
27
 
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # ronin-web - A collection of useful web helper methods and commands.
4
4
  #
5
- # Copyright (c) 2006-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
5
+ # Copyright (c) 2006-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
6
6
  #
7
7
  # ronin-web is free software: you can redistribute it and/or modify
8
8
  # it under the terms of the GNU General Public License as published by
@@ -18,9 +18,10 @@
18
18
  # along with ronin-web. If not, see <https://www.gnu.org/licenses/>.
19
19
  #
20
20
 
21
- require 'ronin/web/root'
22
21
  require 'ronin/core/cli/completion_command'
23
22
 
23
+ require_relative '../../root'
24
+
24
25
  module Ronin
25
26
  module Web
26
27
  class CLI
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # ronin-web - A collection of useful web helper methods and commands.
4
4
  #
5
- # Copyright (c) 2006-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
5
+ # Copyright (c) 2006-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
6
6
  #
7
7
  # ronin-web is free software: you can redistribute it and/or modify
8
8
  # it under the terms of the GNU General Public License as published by
@@ -18,9 +18,9 @@
18
18
  # along with ronin-web. If not, see <https://www.gnu.org/licenses/>.
19
19
  #
20
20
 
21
- require 'ronin/web/cli/command'
22
- require 'ronin/support/network/http'
21
+ require_relative '../command'
23
22
 
23
+ require 'ronin/support/network/http'
24
24
  require 'command_kit/colors'
25
25
  require 'nokogiri/diff'
26
26
 
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # ronin-web - A collection of useful web helper methods and commands.
4
4
  #
5
- # Copyright (c) 2006-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
5
+ # Copyright (c) 2006-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
6
6
  #
7
7
  # ronin-web is free software: you can redistribute it and/or modify
8
8
  # it under the terms of the GNU General Public License as published by
@@ -18,9 +18,9 @@
18
18
  # along with ronin-web. If not, see <https://www.gnu.org/licenses/>.
19
19
  #
20
20
 
21
- require 'ronin/web/cli/commands/xml'
22
- require 'ronin/support/network/http'
21
+ require_relative 'xml'
23
22
 
23
+ require 'ronin/support/network/http'
24
24
  require 'nokogiri'
25
25
 
26
26
  module Ronin
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # ronin-web - A collection of useful web helper methods and commands.
4
4
  #
5
- # Copyright (c) 2006-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
5
+ # Copyright (c) 2006-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
6
6
  #
7
7
  # ronin-web is free software: you can redistribute it and/or modify
8
8
  # it under the terms of the GNU General Public License as published by
@@ -18,8 +18,8 @@
18
18
  # along with ronin-web. If not, see <https://www.gnu.org/licenses/>.
19
19
  #
20
20
 
21
- require 'ronin/web/cli/command'
22
- require 'ronin/web/cli/ruby_shell'
21
+ require_relative '../command'
22
+ require_relative '../ruby_shell'
23
23
 
24
24
  module Ronin
25
25
  module Web
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-web is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU General Public License as published by
@@ -16,8 +16,8 @@
16
16
  # along with ronin-web. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
18
18
 
19
- require 'ronin/web/cli/command'
20
- require 'ronin/web/root'
19
+ require_relative '../../command'
20
+ require_relative '../../../root'
21
21
 
22
22
  require 'ronin/core/cli/generator'
23
23
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-web is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU General Public License as published by
@@ -16,8 +16,8 @@
16
16
  # along with ronin-web. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
18
18
 
19
- require 'ronin/web/cli/command'
20
- require 'ronin/web/root'
19
+ require_relative '../../command'
20
+ require_relative '../../../root'
21
21
 
22
22
  require 'ronin/core/cli/generator'
23
23
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-web is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU General Public License as published by
@@ -16,8 +16,8 @@
16
16
  # along with ronin-web. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
18
18
 
19
- require 'ronin/web/cli/command'
20
- require 'ronin/web/root'
19
+ require_relative '../../command'
20
+ require_relative '../../../root'
21
21
 
22
22
  require 'ronin/core/cli/generator'
23
23
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  #
3
- # Copyright (c) 2006-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
3
+ # Copyright (c) 2006-2025 Hal Brodigan (postmodern.mod3 at gmail.com)
4
4
  #
5
5
  # ronin-web is free software: you can redistribute it and/or modify
6
6
  # it under the terms of the GNU General Public License as published by
@@ -16,8 +16,8 @@
16
16
  # along with ronin-web. If not, see <https://www.gnu.org/licenses/>.
17
17
  #
18
18
 
19
- require 'ronin/web/cli/command'
20
- require 'ronin/web/root'
19
+ require_relative '../../command'
20
+ require_relative '../../../root'
21
21
 
22
22
  require 'ronin/core/cli/generator'
23
23