ronin-web 1.0.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) 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/.ruby-version +1 -1
  6. data/ChangeLog.md +46 -1
  7. data/Gemfile +25 -12
  8. data/README.md +257 -51
  9. data/Rakefile +9 -0
  10. data/data/completions/ronin-web +203 -0
  11. data/gemspec.yml +18 -5
  12. data/lib/ronin/web/cli/browser_options.rb +92 -0
  13. data/lib/ronin/web/cli/browser_shell.rb +448 -0
  14. data/lib/ronin/web/cli/command.rb +1 -1
  15. data/lib/ronin/web/cli/commands/browser.rb +373 -0
  16. data/lib/ronin/web/cli/commands/completion.rb +63 -0
  17. data/lib/ronin/web/cli/commands/diff.rb +60 -8
  18. data/lib/ronin/web/cli/commands/html.rb +21 -33
  19. data/lib/ronin/web/cli/commands/irb.rb +1 -1
  20. data/lib/ronin/web/cli/commands/new/{webapp.rb → app.rb} +8 -8
  21. data/lib/ronin/web/cli/commands/new/nokogiri.rb +4 -4
  22. data/lib/ronin/web/cli/commands/new/server.rb +1 -1
  23. data/lib/ronin/web/cli/commands/new/spider.rb +1 -1
  24. data/lib/ronin/web/cli/commands/new.rb +5 -3
  25. data/lib/ronin/web/cli/commands/reverse_proxy.rb +1 -1
  26. data/lib/ronin/web/cli/commands/screenshot.rb +186 -0
  27. data/lib/ronin/web/cli/commands/server.rb +1 -1
  28. data/lib/ronin/web/cli/commands/session_cookie.rb +265 -0
  29. data/lib/ronin/web/cli/commands/spider.rb +61 -467
  30. data/lib/ronin/web/cli/commands/user_agent.rb +177 -0
  31. data/lib/ronin/web/cli/commands/vulns.rb +463 -0
  32. data/lib/ronin/web/cli/commands/wordlist.rb +484 -0
  33. data/lib/ronin/web/cli/commands/xml.rb +149 -0
  34. data/lib/ronin/web/cli/js_shell.rb +69 -0
  35. data/lib/ronin/web/cli/ruby_shell.rb +1 -1
  36. data/lib/ronin/web/cli/spider_options.rb +919 -0
  37. data/lib/ronin/web/cli.rb +3 -1
  38. data/lib/ronin/web/html.rb +1 -1
  39. data/lib/ronin/web/root.rb +1 -1
  40. data/lib/ronin/web/version.rb +2 -2
  41. data/lib/ronin/web/xml.rb +1 -1
  42. data/lib/ronin/web.rb +4 -364
  43. data/man/ronin-web-browser.1 +92 -0
  44. data/man/ronin-web-browser.1.md +96 -0
  45. data/man/ronin-web-completion.1 +76 -0
  46. data/man/ronin-web-completion.1.md +78 -0
  47. data/man/ronin-web-diff.1 +14 -21
  48. data/man/ronin-web-diff.1.md +13 -6
  49. data/man/ronin-web-html.1 +30 -46
  50. data/man/ronin-web-html.1.md +27 -17
  51. data/man/ronin-web-irb.1 +9 -16
  52. data/man/ronin-web-irb.1.md +6 -2
  53. data/man/ronin-web-new-app.1.md +39 -0
  54. data/man/ronin-web-new-nokogiri.1 +9 -20
  55. data/man/ronin-web-new-nokogiri.1.md +5 -5
  56. data/man/ronin-web-new-server.1 +11 -23
  57. data/man/ronin-web-new-server.1.md +5 -5
  58. data/man/ronin-web-new-spider.1 +44 -88
  59. data/man/ronin-web-new-spider.1.md +37 -37
  60. data/man/ronin-web-new.1 +18 -30
  61. data/man/ronin-web-new.1.md +15 -11
  62. data/man/ronin-web-reverse-proxy.1 +33 -38
  63. data/man/ronin-web-reverse-proxy.1.md +20 -14
  64. data/man/ronin-web-screenshot.1 +56 -0
  65. data/man/ronin-web-screenshot.1.md +56 -0
  66. data/man/ronin-web-server.1 +15 -29
  67. data/man/ronin-web-server.1.md +13 -9
  68. data/man/ronin-web-session-cookie.1 +38 -0
  69. data/man/ronin-web-session-cookie.1.md +41 -0
  70. data/man/ronin-web-spider.1 +121 -130
  71. data/man/ronin-web-spider.1.md +115 -66
  72. data/man/ronin-web-user-agent.1 +44 -0
  73. data/man/ronin-web-user-agent.1.md +46 -0
  74. data/man/ronin-web-vulns.1 +175 -0
  75. data/man/ronin-web-vulns.1.md +177 -0
  76. data/man/ronin-web-wordlist.1 +258 -0
  77. data/man/ronin-web-wordlist.1.md +263 -0
  78. data/man/ronin-web-xml.1 +43 -0
  79. data/man/ronin-web-xml.1.md +46 -0
  80. data/man/ronin-web.1 +67 -18
  81. data/man/ronin-web.1.md +55 -4
  82. data/scripts/setup +58 -0
  83. metadata +121 -30
  84. data/lib/ronin/web/mechanize.rb +0 -84
  85. data/man/ronin-web-new-webapp.1.md +0 -39
  86. /data/data/new/{webapp → app}/.gitignore +0 -0
  87. /data/data/new/{webapp → app}/.ruby-version.erb +0 -0
  88. /data/data/new/{webapp → app}/Dockerfile.erb +0 -0
  89. /data/data/new/{webapp → app}/Gemfile +0 -0
  90. /data/data/new/{webapp → app}/app.rb.erb +0 -0
  91. /data/data/new/{webapp → app}/config.ru +0 -0
  92. /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 XML 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 XML 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'!"