ronin-web 2.0.0.rc1 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
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