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
@@ -0,0 +1,263 @@
1
+ # ronin-web-spider 1 "2022-01-01" Ronin Web "User Manuals"
2
+
3
+ ## NAME
4
+
5
+ ronin-web-wordlist - Builds a wordlist by spidering a website
6
+
7
+ ## SYNOPSIS
8
+
9
+ `ronin-web wordlist` [*options*] {`--host` *HOST* \| `--domain` *DOMAIN* \| `--site` *URL*}
10
+
11
+ ## DESCRIPTION
12
+
13
+ Builds a wordlist by spidering a website.
14
+
15
+ ## OPTIONS
16
+
17
+ `-o`, `--output` *PATH*
18
+ : The wordlist file to write to.
19
+
20
+ `-X`, `--content-xpath` *XPATH*
21
+ : The XPath expression for where the content exists in each HTML page.
22
+
23
+ `-C`, `--content-css-path` *CSS-path*
24
+ : The CSS-path expression for where the content exists in each HTML page.
25
+
26
+ `--meta-tags`
27
+ : Parses `keywords` and `description` `<meta>` tags while spidering HTML pages.
28
+ This is enabled by default.
29
+
30
+ `--no-meta-tags`
31
+ : Ignore `<meta>` tags while spidering HTML pages.
32
+
33
+ `--comments`
34
+ : Parses HTML comments while spidering HTML pages.
35
+ This is enabled by default.
36
+
37
+ `--no-comments`
38
+ : Ignores HTML comments while spidering HTML pages.
39
+
40
+ `--alt-tags`
41
+ : Parses `alt=` attribute tags on `<img>`, `<area>`, and `<input>`.
42
+
43
+ `--no-alt-tags`
44
+ : Ignore `alt=` attribute tags while spidering HTML pages.
45
+
46
+ `--paths`
47
+ : Parses the directory names from all spidered URLs.
48
+
49
+ `--query-param-names`
50
+ : Parses the query param names from all spidered URLs.
51
+
52
+ `--query-param-values`
53
+ : Parses the query param values from all spidered URLs.
54
+
55
+ `--only-paths`
56
+ : Only parse the directory names from all spidered URLs.
57
+
58
+ `--only-query-param-names`
59
+ : Only parse the query param names from all spidered URLs.
60
+
61
+ `--query-param-values`
62
+ : Only parse the query param values from all spidered URLs.
63
+
64
+ `-f`, `--format` `txt`|`gz`|`bzip2`|`xz`
65
+ : Specifies the format of the wordlist file that will be created.
66
+
67
+ `-A`, `--append`
68
+ : Append new words to an existing wordlist file instead of overwriting the file.
69
+
70
+ ### TEXT PARSING OPTIONS
71
+
72
+ `-L`, `--lang` *LANG*
73
+ : The language of the text to parse. Defaults to the current language set by the
74
+ `LANG` environment variable.
75
+
76
+ `--stop-word` *WORD*
77
+ : Defines a custom "stop word" (ex: "the", "is", "a") to be ignored.
78
+ If not specified, a default list of "stop words" will be selected based on
79
+ either `--lang` or the current language set by the `LANG` environment
80
+ variable.
81
+
82
+ `--ignore-word` *WORD*
83
+ : Adds the word to the list of words to ignore while parsing text.
84
+
85
+ `--digits`
86
+ : Accepts words contining digits (0-9) while parsing text. This is the default
87
+ behavior.
88
+
89
+ `--no-digits`
90
+ : Ignores words containing digits (0-9) while parsing text.
91
+
92
+ `--special-char` *CHAR*
93
+ : Allows a specific special character to exist within words. If not specified,
94
+ only the characters `_`, `-`, `'` are allowed by default.
95
+
96
+ `--numbers`
97
+ : Accepts whole numbers as words while parsing text.
98
+
99
+ `--no-numbers`
100
+ : Ignores whole numbers while parsing text. This is the default behavior.
101
+
102
+ `--acronyms`
103
+ : Treat acronyms (ex: `A.B.C.`) as words while parsing text.
104
+ This is the default behavior.
105
+
106
+ `--no-acronyms`
107
+ : Ignores acronyms (ex: `A.B.C.`) while parsing text.
108
+
109
+ `--normalize-case`
110
+ : Converts all words to lowercase while parsing text.
111
+
112
+ `--no-normalize-case`
113
+ : Preserves the case of words letters while parsing text. This is the default
114
+ behavior. This is the default behavior.
115
+
116
+ `--normalize-apostrophes`
117
+ : Removes apostrophes from words (ex: `It's` -> `Its`) while parsing text.
118
+
119
+ `--no-normalize-apostrophes`
120
+ : Preserves apostrophes in words (ex: `It's`). This is the default behavior.
121
+ This is the default behavior.
122
+
123
+ `--normalize-acronyms`
124
+ : Removes the periods from acronyms (ex: `A.B.C.` -> `ABC`) while parsing text.
125
+
126
+ `--no-normalize-acronyms`
127
+ : Preserves the periods in acronyms (ex: `A.B.C.`) while parsing text.
128
+ This is the default behavior.
129
+
130
+ `-h`, `--help`
131
+ : Print help information.
132
+
133
+ ### SPIDER OPTIONS
134
+
135
+ `--open-timeout` *SECS*
136
+ : Sets the connection open timeout.
137
+
138
+ `--read-timeout` *SECS*
139
+ : Sets the read timeout.
140
+
141
+ `--ssl-timeout` *SECS*
142
+ : Sets the SSL connection timeout.
143
+
144
+ `--continue-timeout` *SECS*
145
+ : Sets the continue timeout.
146
+
147
+ `--keep-alive-timeout` *SECS*
148
+ : Sets the connection keep alive timeout.
149
+
150
+ `-P`, `--proxy` *PROXY*
151
+ : Sets the proxy to use.
152
+
153
+ `-H`, `--header` "*NAME*`:` *VALUE*"
154
+ : Sets a default header.
155
+
156
+ `--host-header` *NAME*=*VALUE*
157
+ : Sets a default header.
158
+
159
+ `-u`, `--user-agent` `chrome-linux`|`chrome-macos`|`chrome-windows`|`chrome-iphone`|`chrome-ipad`|`chrome-android`|`firefox-linux`|`firefox-macos`|`firefox-windows`|`firefox-iphone`|`firefox-ipad`|`firefox-android`|`safari-macos`|`safari-iphone`|`safari-ipad`|`edge`
160
+ : The `User-Agent` to use.
161
+
162
+ `-U`, `--user-agent-string` *STRING*
163
+ : The raw `User-Agent` string to use.
164
+
165
+ `-R`, `--referer` *URL*
166
+ : Sets the `Referer` URL.
167
+
168
+ `--delay` *SECS*
169
+ : Sets the delay in seconds between each request.
170
+
171
+ `-l`, `--limit` *COUNT*
172
+ : Only spiders up to *COUNT* pages.
173
+
174
+ `-d`, `--max-depth` *DEPTH*
175
+ : Only spiders up to max depth.
176
+
177
+ `--enqueue` *URL*
178
+ : Adds the URL to the queue.
179
+
180
+ `--visited` *URL*
181
+ : Marks the URL as previously visited.
182
+
183
+ `--strip-fragments`
184
+ : Enables/disables stripping the fragment component of every URL.
185
+
186
+ `--strip-query`
187
+ : Enables/disables stripping the query component of every URL.
188
+
189
+ `--visit-host` *HOST*
190
+ : Visit URLs with the matching host name.
191
+
192
+ `--visit-hosts-like` `/`*REGEX*`/`
193
+ : Visit URLs with hostnames that match the *REGEX*.
194
+
195
+ `--ignore-host` *HOST*
196
+ : Ignore the host name.
197
+
198
+ `--ignore-hosts-like` `/`*REGEX*`/`
199
+ : Ignore the host names matching the *REGEX*.
200
+
201
+ `--visit-port` *PORT*
202
+ : Visit URLs with the matching port number.
203
+
204
+ `--visit-ports-like` `/`*REGEX*`/`
205
+ : Visit URLs with port numbers that match the *REGEX*.
206
+
207
+ `--ignore-port` *PORT*
208
+ : Ignore the port number.
209
+
210
+ `--ignore-ports-like` `/`*REGEX*`/`
211
+ : Ignore the port numbers matching the *REGEXP*.
212
+
213
+ `--visit-link` *URL*
214
+ : Visit the *URL*.
215
+
216
+ `--visit-links-like` `/`*REGEX*`/`
217
+ : Visit URLs that match the *REGEX*.
218
+
219
+ `--ignore-link` *URL*
220
+ : Ignore the *URL*.
221
+
222
+ `--ignore-links-like` `/`*REGEX*`/`
223
+ : Ignore URLs matching the *REGEX*.
224
+
225
+ `--visit-ext` *FILE_EXT*
226
+ : Visit URLs with the matching file ext.
227
+
228
+ `--visit-exts-like` `/`*REGEX*`/`
229
+ : Visit URLs with file exts that match the *REGEX*.
230
+
231
+ `--ignore-ext` *FILE_EXT*
232
+ : Ignore the URLs with the file ext.
233
+
234
+ `--ignore-exts-like` `/`*REGEX*`/`
235
+ : Ignore URLs with file exts matching the REGEX.
236
+
237
+ `-r`, `--robots`
238
+ : Specifies whether to honor `robots.txt`.
239
+
240
+ `--host` *HOST*
241
+ : Spiders the specific *HOST*.
242
+
243
+ `--domain` *DOMAIN*
244
+ : Spiders the whole *DOMAIN*.
245
+
246
+ `--site` *URL*
247
+ : Spiders the website, starting at the *URL*.
248
+
249
+ ## ENVIRONMENT
250
+
251
+ *HTTP_PROXY*
252
+ : Sets the global HTTP proxy.
253
+
254
+ *RONIN_HTTP_PROXY*
255
+ : Sets the HTTP proxy for Ronin.
256
+
257
+ ## AUTHOR
258
+
259
+ Postmodern <postmodern.mod3@gmail.com>
260
+
261
+ ## SEE ALSO
262
+
263
+ [ronin-web-spider](ronin-web-spider.1.md)
@@ -0,0 +1,43 @@
1
+ .\" Generated by kramdown-man 1.0.1
2
+ .\" https://github.com/postmodern/kramdown-man#readme
3
+ .TH ronin-web-xml 1 "2022-01-01" Ronin "User Manuals"
4
+ .SH NAME
5
+ .PP
6
+ ronin\-web\-xml \- Performs XPath queries on a URL or XML file
7
+ .SH SYNOPSIS
8
+ .PP
9
+ \fBronin\-web xml\fR \[lB]\fIoptions\fP\[rB] \[lC]\fIURL\fP \[or] \fIFILE\fP\[rC] \[lB]\fIXPATH\fP\[rB]
10
+ .SH DESCRIPTION
11
+ .PP
12
+ Performs XPath queries on a URL or HTML file\.
13
+ .SH ARGUMENTS
14
+ .TP
15
+ \fIURL\fP
16
+ The \fBhttp:\[sl]\[sl]\fR or \fBhttps:\[sl]\[sl]\fR URL to fetch and parse\.
17
+ .TP
18
+ \fIFILE\fP
19
+ The local XML file to parse\.
20
+ .TP
21
+ \fIXPATH\fP
22
+ The XPath query expression\.
23
+ .SH OPTIONS
24
+ .TP
25
+ \fB\-X\fR, \fB\-\-xpath\fR \fIXPATH\fP
26
+ The XPath query to perform\.
27
+ .TP
28
+ \fB\-F\fR, \fB\-\-first\fR
29
+ Only print the first match\.
30
+ .TP
31
+ \fB\-t\fR, \fB\-\-text\fR
32
+ Prints the inner\-text of the matching elements\.
33
+ .TP
34
+ \fB\-h\fR, \fB\-\-help\fR
35
+ Print help information\.
36
+ .SH AUTHOR
37
+ .PP
38
+ Postmodern
39
+ .MT postmodern\.mod3\[at]gmail\.com
40
+ .ME
41
+ .SH SEE ALSO
42
+ .PP
43
+ .BR ronin\-web\-html (1)
@@ -0,0 +1,46 @@
1
+ # ronin-web-xml 1 "2022-01-01" Ronin "User Manuals"
2
+
3
+ ## NAME
4
+
5
+ ronin-web-xml - Performs XPath queries on a URL or XML file
6
+
7
+ ## SYNOPSIS
8
+
9
+ `ronin-web xml` [*options*] {*URL* \| *FILE*} [*XPATH*]
10
+
11
+ ## DESCRIPTION
12
+
13
+ Performs XPath queries on a URL or HTML file.
14
+
15
+ ## ARGUMENTS
16
+
17
+ *URL*
18
+ : The `http://` or `https://` URL to fetch and parse.
19
+
20
+ *FILE*
21
+ : The local XML file to parse.
22
+
23
+ *XPATH*
24
+ : The XPath query expression.
25
+
26
+ ## OPTIONS
27
+
28
+ `-X`, `--xpath` *XPATH*
29
+ : The XPath query to perform.
30
+
31
+ `-F`, `--first`
32
+ : Only print the first match.
33
+
34
+ `-t`, `--text`
35
+ : Prints the inner-text of the matching elements.
36
+
37
+ `-h`, `--help`
38
+ : Print help information.
39
+
40
+ ## AUTHOR
41
+
42
+ Postmodern <postmodern.mod3@gmail.com>
43
+
44
+ ## SEE ALSO
45
+
46
+ [ronin-web-html](ronin-web-html.1.md)
data/man/ronin-web.1 CHANGED
@@ -1,41 +1,90 @@
1
- .\" Generated by kramdown-man 0.1.8
1
+ .\" Generated by kramdown-man 1.0.1
2
2
  .\" https://github.com/postmodern/kramdown-man#readme
3
3
  .TH ronin-web 1 "2022-01-01" Ronin Web "User Manuals"
4
- .LP
4
+ .SH NAME
5
+ .PP
6
+ ronin\-web \- a collection of useful web commands
5
7
  .SH SYNOPSIS
6
- .LP
7
- .HP
8
- \fBronin-web\fR \[lB]\fIoptions\fP\[rB] \[lB]\fICOMMAND\fP \[lB]\fIARGS\fP\[rB]\[rB]
9
- .LP
8
+ .PP
9
+ \fBronin\-web\fR \[lB]\fIoptions\fP\[rB] \[lB]\fICOMMAND\fP \[lB]\fIARGS\fP\[rB]\[rB]
10
10
  .SH DESCRIPTION
11
- .LP
12
11
  .PP
13
12
  A collection of useful web commands\.
14
- .LP
15
13
  .SH ARGUMENTS
16
- .LP
17
14
  .TP
18
15
  \fICOMMAND\fP
19
16
  The sub\-command to execute\.
20
- .LP
21
17
  .TP
22
18
  \fIARGS\fP
23
19
  Additional arguments for the sub\-command\.
24
- .LP
25
20
  .SH OPTIONS
26
- .LP
27
21
  .TP
28
- \fB-h\fR, \fB--help\fR
22
+ \fB\-h\fR, \fB\-\-help\fR
29
23
  Prints help information\.
30
- .LP
24
+ .SH COMMANDS
25
+ .TP
26
+ \fBbrowser\fR
27
+ Automates a web browser\.
28
+ .TP
29
+ \fBcompletion\fR
30
+ Manages the shell completion rules for \fBronin\-web\fR\.
31
+ .TP
32
+ \fBdiff\fR
33
+ Diffs two web pages\.
34
+ .TP
35
+ \fBhtml\fR
36
+ Performs XPath\[sl]CSS\-path queries on a URL or HTML file\.
37
+ .TP
38
+ \fBirb\fR
39
+ Starts an interactive Ruby shell with ronin\-web loaded\.
40
+ .TP
41
+ \fBnew\fR
42
+ Creates new projects or scripts\.
43
+ .TP
44
+ \fBreverse\-proxy\fR
45
+ Starts a HTTP proxy server\.
46
+ .TP
47
+ \fBscreenshot\fR
48
+ Screenshots one or more URLs\.
49
+ .TP
50
+ \fBserver\fR
51
+ Starts a web server\.
52
+ .TP
53
+ \fBsession\-cookie\fR
54
+ Parses and deserializes various session cookie formats\.
55
+ .TP
56
+ \fBspider\fR
57
+ Spiders a website\.
58
+ .TP
59
+ \fBuser\-agent\fR
60
+ Generates a random User\-Agent string\.
61
+ .TP
62
+ \fBwordlist\fR
63
+ Builds a wordlist by spidering a website\.
64
+ .TP
65
+ \fBxml\fR
66
+ Performs XPath queries on a URL or XML file\.
67
+ .TP
68
+ \fBhelp\fR
69
+ Prints help information about this command or another command\.
31
70
  .SH AUTHOR
32
- .LP
33
71
  .PP
34
72
  Postmodern
35
73
  .MT postmodern\.mod3\[at]gmail\.com
36
74
  .ME
37
- .LP
38
75
  .SH SEE ALSO
39
- .LP
40
76
  .PP
41
- ronin\-web\-diff(1) ronin\-web\-html(1) ronin\-web\-server(1) ronin\-web\-spider(1) ronin\-web\-proxy(1)
77
+ .BR ronin\-web\-browser (1)
78
+ .BR ronin\-web\-completion (1)
79
+ .BR ronin\-web\-diff (1)
80
+ .BR ronin\-web\-html (1)
81
+ .BR ronin\-web\-irb (1)
82
+ .BR ronin\-web\-new (1)
83
+ .BR ronin\-web\-reverse\-proxy (1)
84
+ .BR ronin\-web\-screenshot (1)
85
+ .BR ronin\-web\-server (1)
86
+ .BR ronin\-web\-session\-cookie (1)
87
+ .BR ronin\-web\-spider (1)
88
+ .BR ronin\-web\-user\-agent (1)
89
+ .BR ronin\-web\-wordlist (1)
90
+ .BR ronin\-web\-xml (1)
data/man/ronin-web.1.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # ronin-web 1 "2022-01-01" Ronin Web "User Manuals"
2
2
 
3
+ ## NAME
4
+
5
+ ronin-web - a collection of useful web commands
6
+
3
7
  ## SYNOPSIS
4
8
 
5
9
  `ronin-web` [*options*] [*COMMAND* [*ARGS*]]
@@ -11,15 +15,62 @@ A collection of useful web commands.
11
15
  ## ARGUMENTS
12
16
 
13
17
  *COMMAND*
14
- The sub-command to execute.
18
+ : The sub-command to execute.
15
19
 
16
20
  *ARGS*
17
- Additional arguments for the sub-command.
21
+ : Additional arguments for the sub-command.
18
22
 
19
23
  ## OPTIONS
20
24
 
21
25
  `-h`, `--help`
22
- Prints help information.
26
+ : Prints help information.
27
+
28
+ ## COMMANDS
29
+
30
+ `browser`
31
+ : Automates a web browser.
32
+
33
+ `completion`
34
+ : Manages the shell completion rules for `ronin-web`.
35
+
36
+ `diff`
37
+ : Diffs two web pages.
38
+
39
+ `html`
40
+ : Performs XPath/CSS-path queries on a URL or HTML file.
41
+
42
+ `irb`
43
+ : Starts an interactive Ruby shell with ronin-web loaded.
44
+
45
+ `new`
46
+ : Creates new projects or scripts.
47
+
48
+ `reverse-proxy`
49
+ : Starts a HTTP proxy server.
50
+
51
+ `screenshot`
52
+ : Screenshots one or more URLs.
53
+
54
+ `server`
55
+ : Starts a web server.
56
+
57
+ `session-cookie`
58
+ : Parses and deserializes various session cookie formats.
59
+
60
+ `spider`
61
+ : Spiders a website.
62
+
63
+ `user-agent`
64
+ : Generates a random User-Agent string.
65
+
66
+ `wordlist`
67
+ : Builds a wordlist by spidering a website.
68
+
69
+ `xml`
70
+ : Performs XPath queries on a URL or XML file.
71
+
72
+ `help`
73
+ : Prints help information about this command or another command.
23
74
 
24
75
  ## AUTHOR
25
76
 
@@ -27,4 +78,4 @@ Postmodern <postmodern.mod3@gmail.com>
27
78
 
28
79
  ## SEE ALSO
29
80
 
30
- ronin-web-diff(1) ronin-web-html(1) ronin-web-server(1) ronin-web-spider(1) ronin-web-proxy(1)
81
+ [ronin-web-browser](ronin-web-browser.1.md) [ronin-web-completion](ronin-web-completion.1.md) [ronin-web-diff](ronin-web-diff.1.md) [ronin-web-html](ronin-web-html.1.md) [ronin-web-irb](ronin-web-irb.1.md) [ronin-web-new](ronin-web-new.1.md) [ronin-web-reverse-proxy](ronin-web-reverse-proxy.1.md) [ronin-web-screenshot](ronin-web-screenshot.1.md) [ronin-web-server](ronin-web-server.1.md) [ronin-web-session-cookie](ronin-web-session-cookie.1.md) [ronin-web-spider](ronin-web-spider.1.md) [ronin-web-user-agent](ronin-web-user-agent.1.md) [ronin-web-wordlist](ronin-web-wordlist.1.md) [ronin-web-xml](ronin-web-xml.1.md)
data/scripts/setup ADDED
@@ -0,0 +1,58 @@
1
+ #!/usr/bin/env bash
2
+
3
+ #
4
+ # Prints a log message.
5
+ #
6
+ function log()
7
+ {
8
+ if [[ -t 1 ]]; then
9
+ echo -e "\x1b[1m\x1b[32m>>>\x1b[0m \x1b[1m$1\x1b[0m"
10
+ else
11
+ echo ">>> $1"
12
+ fi
13
+ }
14
+
15
+ #
16
+ # Prints a warn message.
17
+ #
18
+ function warn()
19
+ {
20
+ if [[ -t 1 ]]; then
21
+ echo -e "\x1b[1m\x1b[33m***\x1b[0m \x1b[1m$1\x1b[0m" >&2
22
+ else
23
+ echo "*** $1" >&2
24
+ fi
25
+ }
26
+
27
+ #
28
+ # Prints an error message.
29
+ #
30
+ function error()
31
+ {
32
+ if [[ -t 1 ]]; then
33
+ echo -e "\x1b[1m\x1b[31m!!!\x1b[0m \x1b[1m$1\x1b[0m" >&2
34
+ else
35
+ echo "!!! $1" >&2
36
+ fi
37
+ }
38
+
39
+ #
40
+ # Prints an error message and exists with -1.
41
+ #
42
+ function fail()
43
+ {
44
+ error "$@"
45
+ exit -1
46
+ }
47
+
48
+ # default to installing gems into vendor/bundle
49
+ if [[ ! -f .bundle/config ]]; then
50
+ bundle config set --local path vendor/bundle >/dev/null || \
51
+ fail "Failed to run 'bundle config'"
52
+ fi
53
+
54
+ log "Installing gems ..."
55
+ bundle install || fail "Failed to run 'bundle install'!"
56
+
57
+ log "Setting up the project ..."
58
+ bundle exec rake setup || "Failed to run 'rake setup'!"