ronin-vulns 0.1.5 → 0.2.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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/ChangeLog.md +43 -0
  4. data/Gemfile +14 -4
  5. data/README.md +7 -3
  6. data/Rakefile +9 -0
  7. data/data/completions/ronin-vulns +139 -0
  8. data/gemspec.yml +7 -1
  9. data/lib/ronin/vulns/cli/command.rb +1 -1
  10. data/lib/ronin/vulns/cli/commands/command_injection.rb +163 -0
  11. data/lib/ronin/vulns/cli/commands/completion.rb +63 -0
  12. data/lib/ronin/vulns/cli/commands/irb.rb +59 -0
  13. data/lib/ronin/vulns/cli/commands/lfi.rb +21 -9
  14. data/lib/ronin/vulns/cli/commands/open_redirect.rb +13 -1
  15. data/lib/ronin/vulns/cli/commands/reflected_xss.rb +13 -1
  16. data/lib/ronin/vulns/cli/commands/rfi.rb +13 -1
  17. data/lib/ronin/vulns/cli/commands/scan.rb +21 -9
  18. data/lib/ronin/vulns/cli/commands/sqli.rb +13 -1
  19. data/lib/ronin/vulns/cli/commands/ssti.rb +13 -1
  20. data/lib/ronin/vulns/cli/importable.rb +76 -0
  21. data/lib/ronin/vulns/cli/printing.rb +184 -0
  22. data/lib/ronin/vulns/cli/ruby_shell.rb +53 -0
  23. data/lib/ronin/vulns/cli/web_vuln_command.rb +216 -20
  24. data/lib/ronin/vulns/cli.rb +3 -2
  25. data/lib/ronin/vulns/command_injection.rb +267 -0
  26. data/lib/ronin/vulns/importer.rb +116 -0
  27. data/lib/ronin/vulns/lfi/test_file.rb +1 -1
  28. data/lib/ronin/vulns/lfi.rb +1 -1
  29. data/lib/ronin/vulns/open_redirect.rb +1 -1
  30. data/lib/ronin/vulns/reflected_xss/context.rb +1 -1
  31. data/lib/ronin/vulns/reflected_xss/test_string.rb +1 -1
  32. data/lib/ronin/vulns/reflected_xss.rb +1 -1
  33. data/lib/ronin/vulns/rfi.rb +64 -9
  34. data/lib/ronin/vulns/root.rb +1 -1
  35. data/lib/ronin/vulns/sqli/error_pattern.rb +1 -1
  36. data/lib/ronin/vulns/sqli.rb +36 -28
  37. data/lib/ronin/vulns/ssti/test_expression.rb +1 -1
  38. data/lib/ronin/vulns/ssti.rb +69 -53
  39. data/lib/ronin/vulns/url_scanner.rb +10 -1
  40. data/lib/ronin/vulns/version.rb +2 -2
  41. data/lib/ronin/vulns/vuln.rb +1 -1
  42. data/lib/ronin/vulns/web_vuln/http_request.rb +40 -1
  43. data/lib/ronin/vulns/web_vuln.rb +86 -16
  44. data/man/ronin-vulns-command-injection.1 +109 -0
  45. data/man/ronin-vulns-command-injection.1.md +112 -0
  46. data/man/ronin-vulns-completion.1 +76 -0
  47. data/man/ronin-vulns-completion.1.md +78 -0
  48. data/man/ronin-vulns-irb.1 +27 -0
  49. data/man/ronin-vulns-irb.1.md +26 -0
  50. data/man/ronin-vulns-lfi.1 +54 -51
  51. data/man/ronin-vulns-lfi.1.md +52 -20
  52. data/man/ronin-vulns-open-redirect.1 +51 -47
  53. data/man/ronin-vulns-open-redirect.1.md +50 -18
  54. data/man/ronin-vulns-reflected-xss.1 +50 -45
  55. data/man/ronin-vulns-reflected-xss.1.md +49 -17
  56. data/man/ronin-vulns-rfi.1 +54 -52
  57. data/man/ronin-vulns-rfi.1.md +52 -20
  58. data/man/ronin-vulns-scan.1 +68 -69
  59. data/man/ronin-vulns-scan.1.md +61 -29
  60. data/man/ronin-vulns-sqli.1 +54 -52
  61. data/man/ronin-vulns-sqli.1.md +52 -20
  62. data/man/ronin-vulns-ssti.1 +52 -48
  63. data/man/ronin-vulns-ssti.1.md +50 -18
  64. data/man/ronin-vulns.1 +73 -0
  65. data/man/ronin-vulns.1.md +69 -0
  66. data/scripts/setup +58 -0
  67. metadata +36 -5
  68. data/lib/ronin/vulns/cli/logging.rb +0 -81
@@ -1,99 +1,103 @@
1
- .\" Generated by kramdown-man 0.1.9
1
+ .\" Generated by kramdown-man 1.0.1
2
2
  .\" https://github.com/postmodern/kramdown-man#readme
3
3
  .TH ronin-vulns-lfi 1 "May 2022" Ronin "User Manuals"
4
- .LP
4
+ .SH NAME
5
+ .PP
6
+ ronin\-vulns\-ssti \- Scans URL(s) for Server Side Template Injection (SSTI) vulnerabilities
5
7
  .SH SYNOPSIS
6
- .LP
7
8
  .PP
8
- \fBronin-vulns lfi\fR \[lB]\fIoptions\fP\[rB] \[lC]\fIURL\fP \.\.\. \[or] \fB--input\fR \fIFILE\fP\[rC]
9
- .LP
9
+ \fBronin\-vulns lfi\fR \[lB]\fIoptions\fP\[rB] \[lC]\fIURL\fP \.\.\. \[or] \fB\-\-input\fR \fIFILE\fP\[rC]
10
10
  .SH DESCRIPTION
11
- .LP
12
11
  .PP
13
12
  Scans URL(s) for Server Side Template Injection (SSTI) vulnerabilities\. The URLs
14
13
  to scan can be given as additional arguments or read from a file using the
15
- \fB--input\fR option\.
16
- .LP
14
+ \fB\-\-input\fR option\.
17
15
  .SH ARGUMENTS
18
- .LP
19
16
  .TP
20
17
  \fIURL\fP
21
18
  A URL to scan\.
22
- .LP
23
19
  .SH OPTIONS
24
- .LP
25
20
  .TP
26
- \fB--first\fR
21
+ \fB\-\-db\fR \fINAME\fP
22
+ The database name to connect to\. Defaults to \fBdefault\fR if not given\.
23
+ .TP
24
+ \fB\-\-db\-uri\fR \fIURI\fP
25
+ The database URI to connect to
26
+ (ex: \fBpostgres:\[sl]\[sl]user:password\[at]host\[sl]db\fR)\.
27
+ .TP
28
+ \fB\-\-db\-file\fR \fIPATH\fP
29
+ The sqlite3 database file to use\.
30
+ .TP
31
+ \fB\-\-import\fR
32
+ Imports discovered vulnerabilities into the database\.
33
+ .TP
34
+ \fB\-\-first\fR
27
35
  Only find the first vulnerability for each URL\.
28
- .LP
29
36
  .TP
30
- \fB-A\fR, \fB--all\fR
37
+ \fB\-A\fR, \fB\-\-all\fR
31
38
  Find all vulnerabilities for each URL\.
32
- .LP
33
39
  .TP
34
- \fB-H\fR, \fB--header\fR \[lq]\fIName\fP: \fIvalue\fP\[rq]
40
+ \fB\-\-print\-curl\fR
41
+ Also prints an example \fBcurl\fR command for each vulnerability\.
42
+ .TP
43
+ \fB\-\-print\-http\fR
44
+ Also prints an example HTTP request for each vulnerability\.
45
+ .TP
46
+ \fB\-M\fR, \fB\-\-request\-method\fR \fBCOPY\fR\[or]\fBDELETE\fR\[or]\fBGET\fR\[or]\fBHEAD\fR\[or]\fBLOCK\fR\[or]\fBMKCOL\fR\[or]\fBMOVE\fR\[or]\fBOPTIONS\fR\[or]\fBPATCH\fR\[or]\fBPOST\fR\[or]\fBPROPFIND\fR\[or]\fBPROPPATCH\fR\[or]\fBPUT\fR\[or]\fBTRACE\fR\[or]\fBUNLOCK\fR
47
+ Sets the HTTP request method to use\.
48
+ .TP
49
+ \fB\-H\fR, \fB\-\-header\fR \[lq]\fIName\fP: \fIvalue\fP\[rq]
35
50
  Sets an additional header using the given \fIName\fP and \fIvalue\fP\.
36
- .LP
37
51
  .TP
38
- \fB-C\fR, \fB--cookie\fR \fICOOKIE\fP
52
+ \fB\-U\fR, \fB\-\-user\-agent\-string\fR \fISTRING\fP
53
+ Sets the \fBUser\-Agent\fR header string\.
54
+ .TP
55
+ \fB\-u\fR, \fB\-\-user\-agent\fR \fBchrome\-linux\fR\[or]\fBchrome\-macos\fR\[or]\fBchrome\-windows\fR\[or]\fBchrome\-iphone\fR\[or]\fBchrome\-ipad\fR\[or]\fBchrome\-android\fR\[or]\fBfirefox\-linux\fR\[or]\fBfirefox\-macos\fR\[or]\fBfirefox\-windows\fR\[or]\fBfirefox\-iphone\fR\[or]\fBfirefox\-ipad\fR\[or]\fBfirefox\-android\fR\[or]\fBsafari\-macos\fR\[or]\fBsafari\-iphone\fR\[or]\fBsafari\-ipad\fR\[or]\fBedge\fR
56
+ Sets the \fBUser\-Agent\fR header\.
57
+ .TP
58
+ \fB\-C\fR, \fB\-\-cookie\fR \fICOOKIE\fP
39
59
  Sets the raw \fBCookie\fR header\.
40
- .LP
41
60
  .TP
42
- \fB-c\fR, \fB--cookie-param\fR \fINAME\fP\fB=\fR\fIVALUE\fP
61
+ \fB\-c\fR, \fB\-\-cookie\-param\fR \fINAME\fP\fB\[eq]\fR\fIVALUE\fP
43
62
  Sets an additional \fBCookie\fR param using the given \fINAME\fP and \fIVALUE\fP\.
44
- .LP
45
63
  .TP
46
- \fB-R\fR, \fB--referer\fR \fIURL\fP
64
+ \fB\-R\fR, \fB\-\-referer\fR \fIURL\fP
47
65
  Sets the \fBReferer\fR header\.
48
- .LP
49
66
  .TP
50
- \fB-F\fR, \fB--form-param\fR \fINAME\fP\fB=\fR\fIVALUE\fP
67
+ \fB\-F\fR, \fB\-\-form\-param\fR \fINAME\fP\fB\[eq]\fR\fIVALUE\fP
51
68
  Sets an additional form param using the given \fINAME\fP and \fIVALUE\fP\.
52
- .LP
53
69
  .TP
54
- \fB--test-query-param\fR \fINAME\fP
70
+ \fB\-\-test\-query\-param\fR \fINAME\fP
55
71
  Tests the URL query param name\.
56
- .LP
57
72
  .TP
58
- \fB--test-all-query-params\fR
73
+ \fB\-\-test\-all\-query\-params\fR
59
74
  Test all URL query param names\.
60
- .LP
61
75
  .TP
62
- \fB--test-header-name\fR \fINAME\fP
76
+ \fB\-\-test\-header\-name\fR \fINAME\fP
63
77
  Tests the HTTP Header name\.
64
- .LP
65
78
  .TP
66
- \fB--test-cookie-param\fR \fINAME\fP
79
+ \fB\-\-test\-cookie\-param\fR \fINAME\fP
67
80
  Tests the HTTP Cookie name\.
68
- .LP
69
81
  .TP
70
- \fB--test-all-cookie-params\fR
82
+ \fB\-\-test\-all\-cookie\-params\fR
71
83
  Test all Cookie param names\.
72
- .LP
73
84
  .TP
74
- \fB--test-form-param\fR \fINAME\fP
85
+ \fB\-\-test\-form\-param\fR \fINAME\fP
75
86
  Tests the form param name\.
76
- .LP
77
87
  .TP
78
- \fB-i\fR, \fB--input\fR \fIFILE\fP
88
+ \fB\-i\fR, \fB\-\-input\fR \fIFILE\fP
79
89
  Reads URLs from the given \fIFILE\fP\.
80
- .LP
81
- .PP
82
- \fB-T\fR, \fB--test-expr\fR \[lC]\fIX*Y\fP \[or] \fIX\[sl]Z\fP \[or] \fIX\[pl]Y\fP \[or] \fIX\-Y\fP\[rC]
90
+ .TP
91
+ \fB\-T\fR, \fB\-\-test\-expr\fR \[lC]\fIX*Y\fP \[or] \fIX\[sl]Z\fP \[or] \fIX\[pl]Y\fP \[or] \fIX\-Y\fP\[rC]
83
92
  Optional numeric test to use\.
84
- .LP
85
93
  .TP
86
- \fB-h\fR, \fB--help\fR
94
+ \fB\-h\fR, \fB\-\-help\fR
87
95
  Print help information\.
88
- .LP
89
96
  .SH AUTHOR
90
- .LP
91
97
  .PP
92
98
  Postmodern
93
99
  .MT postmodern\.mod3\[at]gmail\.com
94
100
  .ME
95
- .LP
96
101
  .SH SEE ALSO
97
- .LP
98
102
  .PP
99
- ronin\-vulns\-scan(1)
103
+ .BR ronin\-vulns\-scan (1)
@@ -1,5 +1,9 @@
1
1
  # ronin-vulns-lfi 1 "May 2022" Ronin "User Manuals"
2
2
 
3
+ ## NAME
4
+
5
+ ronin-vulns-ssti - Scans URL(s) for Server Side Template Injection (SSTI) vulnerabilities
6
+
3
7
  ## SYNOPSIS
4
8
 
5
9
  `ronin-vulns lfi` [*options*] {*URL* ... \| `--input` *FILE*}
@@ -13,57 +17,85 @@ to scan can be given as additional arguments or read from a file using the
13
17
  ## ARGUMENTS
14
18
 
15
19
  *URL*
16
- A URL to scan.
20
+ : A URL to scan.
17
21
 
18
22
  ## OPTIONS
19
23
 
24
+ `--db` *NAME*
25
+ : The database name to connect to. Defaults to `default` if not given.
26
+
27
+ `--db-uri` *URI*
28
+ : The database URI to connect to
29
+ (ex: `postgres://user:password@host/db`).
30
+
31
+ `--db-file` *PATH*
32
+ : The sqlite3 database file to use.
33
+
34
+ `--import`
35
+ : Imports discovered vulnerabilities into the database.
36
+
20
37
  `--first`
21
- Only find the first vulnerability for each URL.
38
+ : Only find the first vulnerability for each URL.
22
39
 
23
40
  `-A`, `--all`
24
- Find all vulnerabilities for each URL.
41
+ : Find all vulnerabilities for each URL.
42
+
43
+ `--print-curl`
44
+ : Also prints an example `curl` command for each vulnerability.
45
+
46
+ `--print-http`
47
+ : Also prints an example HTTP request for each vulnerability.
48
+
49
+ `-M`, `--request-method` `COPY`|`DELETE`|`GET`|`HEAD`|`LOCK`|`MKCOL`|`MOVE`|`OPTIONS`|`PATCH`|`POST`|`PROPFIND`|`PROPPATCH`|`PUT`|`TRACE`|`UNLOCK`
50
+ : Sets the HTTP request method to use.
25
51
 
26
52
  `-H`, `--header` "*Name*: *value*"
27
- Sets an additional header using the given *Name* and *value*.
53
+ : Sets an additional header using the given *Name* and *value*.
54
+
55
+ `-U`, `--user-agent-string` *STRING*
56
+ : Sets the `User-Agent` header string.
57
+
58
+ `-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`
59
+ : Sets the `User-Agent` header.
28
60
 
29
61
  `-C`, `--cookie` *COOKIE*
30
- Sets the raw `Cookie` header.
62
+ : Sets the raw `Cookie` header.
31
63
 
32
64
  `-c`, `--cookie-param` *NAME*`=`*VALUE*
33
- Sets an additional `Cookie` param using the given *NAME* and *VALUE*.
65
+ : Sets an additional `Cookie` param using the given *NAME* and *VALUE*.
34
66
 
35
67
  `-R`, `--referer` *URL*
36
- Sets the `Referer` header.
68
+ : Sets the `Referer` header.
37
69
 
38
70
  `-F`, `--form-param` *NAME*`=`*VALUE*
39
- Sets an additional form param using the given *NAME* and *VALUE*.
71
+ : Sets an additional form param using the given *NAME* and *VALUE*.
40
72
 
41
73
  `--test-query-param` *NAME*
42
- Tests the URL query param name.
74
+ : Tests the URL query param name.
43
75
 
44
76
  `--test-all-query-params`
45
- Test all URL query param names.
77
+ : Test all URL query param names.
46
78
 
47
79
  `--test-header-name` *NAME*
48
- Tests the HTTP Header name.
80
+ : Tests the HTTP Header name.
49
81
 
50
82
  `--test-cookie-param` *NAME*
51
- Tests the HTTP Cookie name.
83
+ : Tests the HTTP Cookie name.
52
84
 
53
85
  `--test-all-cookie-params`
54
- Test all Cookie param names.
86
+ : Test all Cookie param names.
55
87
 
56
88
  `--test-form-param` *NAME*
57
- Tests the form param name.
89
+ : Tests the form param name.
58
90
 
59
91
  `-i`, `--input` *FILE*
60
- Reads URLs from the given *FILE*.
92
+ : Reads URLs from the given *FILE*.
61
93
 
62
94
  `-T`, `--test-expr` {*X\*Y* \| *X/Z* \| *X+Y* \| *X-Y*}
63
- Optional numeric test to use.
95
+ : Optional numeric test to use.
64
96
 
65
97
  `-h`, `--help`
66
- Print help information.
98
+ : Print help information.
67
99
 
68
100
  ## AUTHOR
69
101
 
@@ -71,4 +103,4 @@ Postmodern <postmodern.mod3@gmail.com>
71
103
 
72
104
  ## SEE ALSO
73
105
 
74
- ronin-vulns-scan(1)
106
+ [ronin-vulns-scan](ronin-vulns-scan.1.md)
data/man/ronin-vulns.1 ADDED
@@ -0,0 +1,73 @@
1
+ .\" Generated by kramdown-man 1.0.1
2
+ .\" https://github.com/postmodern/kramdown-man#readme
3
+ .TH ronin-vulns 1 "2024-01-01" Ronin Vulns "User Manuals"
4
+ .SH NAME
5
+ .PP
6
+ ronin\-vulns \- A library and tool that tests for various web vulnerabilities\.
7
+ .SH SYNOPSIS
8
+ .PP
9
+ \fBronin\-vulns\fR \[lB]\fIoptions\fP\[rB] \[lB]\fICOMMAND\fP \[lB]\.\.\.\[rB]\[rB]
10
+ .SH DESCRIPTION
11
+ .PP
12
+ Runs a \fBronin\-vulns\fR \fICOMMAND\fP\.
13
+ .SH ARGUMENTS
14
+ .TP
15
+ \fICOMMAND\fP
16
+ The \fBronin\-vulns\fR command to execute\.
17
+ .SH OPTIONS
18
+ .TP
19
+ \fB\-V\fR, \fB\-\-version\fR
20
+ Prints the \fBronin\-vulns\fR version and exits\.
21
+ .TP
22
+ \fB\-h\fR, \fB\-\-help\fR
23
+ Print help information
24
+ .SH COMMANDS
25
+ .TP
26
+ \fIcommand\-injection\fP, \fIcmdi\fP
27
+ Scans URL(s) for Command Injection vulnerabilities\.
28
+ .TP
29
+ \fIcompletion\fP
30
+ Manages the shell completion rules for \fBronin\-vulns\fR\.
31
+ .TP
32
+ \fIhelp\fP
33
+ Lists available commands or shows help about a specific command\.
34
+ .TP
35
+ \fIirb\fP
36
+ Starts an interactive Ruby shell with ronin\-vulns loaded\.
37
+ .TP
38
+ \fIlfi\fP
39
+ Scans URL(s) for Local File Inclusion (LFI) vulnerabilities\.
40
+ .TP
41
+ \fIopen\-redirect\fP
42
+ Scans URL(s) for Open Redirect vulnerabilities\.
43
+ .TP
44
+ \fIreflected\-xss\fP, \fIxss\fP
45
+ Scans URL(s) for Reflected Cross Site Scripting (XSS) vulnerabilities\.
46
+ .TP
47
+ \fIrfi\fP
48
+ Scans URL(s) for Remote File Inclusion (RFI) vulnerabilities\.
49
+ .TP
50
+ \fIscan\fP
51
+ Scans URL(s) for web vulnerabilities\.
52
+ .TP
53
+ \fIsqli\fP
54
+ Scans URL(s) for SQL injection (SQLi) vulnerabilities\.
55
+ .TP
56
+ \fIssti\fP
57
+ Scans URL(s) for Server Side Template Injection (SSTI) vulnerabilities\.
58
+ .SH AUTHOR
59
+ .PP
60
+ Postmodern
61
+ .MT postmodern\.mod3\[at]gmail\.com
62
+ .ME
63
+ .SH SEE ALSO
64
+ .PP
65
+ .BR ronin\-vulns\-command\-injection (1)
66
+ .BR ronin\-vulns\-completion (1)
67
+ .BR ronin\-vulns\-lfi (1)
68
+ .BR ronin\-vulns\-open\-redirect (1)
69
+ .BR ronin\-vulns\-reflected\-xss (1)
70
+ .BR ronin\-vulns\-rfi (1)
71
+ .BR ronin\-vulns\-scan (1)
72
+ .BR ronin\-vulns\-sqli (1)
73
+ .BR ronin\-vulns\-ssti (1)
@@ -0,0 +1,69 @@
1
+ # ronin-vulns 1 "2024-01-01" Ronin Vulns "User Manuals"
2
+
3
+ ## NAME
4
+
5
+ ronin-vulns - A library and tool that tests for various web vulnerabilities.
6
+
7
+ ## SYNOPSIS
8
+
9
+ `ronin-vulns` [*options*] [*COMMAND* [...]]
10
+
11
+ ## DESCRIPTION
12
+
13
+ Runs a `ronin-vulns` *COMMAND*.
14
+
15
+ ## ARGUMENTS
16
+
17
+ *COMMAND*
18
+ : The `ronin-vulns` command to execute.
19
+
20
+ ## OPTIONS
21
+
22
+ `-V`, `--version`
23
+ : Prints the `ronin-vulns` version and exits.
24
+
25
+ `-h`, `--help`
26
+ : Print help information
27
+
28
+ ## COMMANDS
29
+
30
+ *command-injection*, *cmdi*
31
+ : Scans URL(s) for Command Injection vulnerabilities.
32
+
33
+ *completion*
34
+ : Manages the shell completion rules for `ronin-vulns`.
35
+
36
+ *help*
37
+ : Lists available commands or shows help about a specific command.
38
+
39
+ *irb*
40
+ : Starts an interactive Ruby shell with ronin-vulns loaded.
41
+
42
+ *lfi*
43
+ : Scans URL(s) for Local File Inclusion (LFI) vulnerabilities.
44
+
45
+ *open-redirect*
46
+ : Scans URL(s) for Open Redirect vulnerabilities.
47
+
48
+ *reflected-xss*, *xss*
49
+ : Scans URL(s) for Reflected Cross Site Scripting (XSS) vulnerabilities.
50
+
51
+ *rfi*
52
+ : Scans URL(s) for Remote File Inclusion (RFI) vulnerabilities.
53
+
54
+ *scan*
55
+ : Scans URL(s) for web vulnerabilities.
56
+
57
+ *sqli*
58
+ : Scans URL(s) for SQL injection (SQLi) vulnerabilities.
59
+
60
+ *ssti*
61
+ : Scans URL(s) for Server Side Template Injection (SSTI) vulnerabilities.
62
+
63
+ ## AUTHOR
64
+
65
+ Postmodern <postmodern.mod3@gmail.com>
66
+
67
+ ## SEE ALSO
68
+
69
+ [ronin-vulns-command-injection](ronin-vulns-command-injection.1.md) [ronin-vulns-completion](ronin-vulns-completion.1.md) [ronin-vulns-lfi](ronin-vulns-lfi.1.md) [ronin-vulns-open-redirect](ronin-vulns-open-redirect.1.md) [ronin-vulns-reflected-xss](ronin-vulns-reflected-xss.1.md) [ronin-vulns-rfi](ronin-vulns-rfi.1.md) [ronin-vulns-scan](ronin-vulns-scan.1.md) [ronin-vulns-sqli](ronin-vulns-sqli.1.md) [ronin-vulns-ssti](ronin-vulns-ssti.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'!"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ronin-vulns
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.2.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Postmodern
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-20 00:00:00.000000000 Z
11
+ date: 2024-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ronin-support
@@ -36,14 +36,28 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0.1'
39
+ version: 0.2.0.rc1
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '0.1'
46
+ version: 0.2.0.rc1
47
+ - !ruby/object:Gem::Dependency
48
+ name: ronin-db
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: 0.2.0.rc1
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: 0.2.0.rc1
47
61
  - !ruby/object:Gem::Dependency
48
62
  name: bundler
49
63
  requirement: !ruby/object:Gem::Requirement
@@ -85,6 +99,7 @@ files:
85
99
  - README.md
86
100
  - Rakefile
87
101
  - bin/ronin-vulns
102
+ - data/completions/ronin-vulns
88
103
  - data/rfi_test.asp
89
104
  - data/rfi_test.aspx
90
105
  - data/rfi_test.cfm
@@ -94,6 +109,9 @@ files:
94
109
  - gemspec.yml
95
110
  - lib/ronin/vulns/cli.rb
96
111
  - lib/ronin/vulns/cli/command.rb
112
+ - lib/ronin/vulns/cli/commands/command_injection.rb
113
+ - lib/ronin/vulns/cli/commands/completion.rb
114
+ - lib/ronin/vulns/cli/commands/irb.rb
97
115
  - lib/ronin/vulns/cli/commands/lfi.rb
98
116
  - lib/ronin/vulns/cli/commands/open_redirect.rb
99
117
  - lib/ronin/vulns/cli/commands/reflected_xss.rb
@@ -101,8 +119,12 @@ files:
101
119
  - lib/ronin/vulns/cli/commands/scan.rb
102
120
  - lib/ronin/vulns/cli/commands/sqli.rb
103
121
  - lib/ronin/vulns/cli/commands/ssti.rb
104
- - lib/ronin/vulns/cli/logging.rb
122
+ - lib/ronin/vulns/cli/importable.rb
123
+ - lib/ronin/vulns/cli/printing.rb
124
+ - lib/ronin/vulns/cli/ruby_shell.rb
105
125
  - lib/ronin/vulns/cli/web_vuln_command.rb
126
+ - lib/ronin/vulns/command_injection.rb
127
+ - lib/ronin/vulns/importer.rb
106
128
  - lib/ronin/vulns/lfi.rb
107
129
  - lib/ronin/vulns/lfi/test_file.rb
108
130
  - lib/ronin/vulns/open_redirect.rb
@@ -120,6 +142,12 @@ files:
120
142
  - lib/ronin/vulns/vuln.rb
121
143
  - lib/ronin/vulns/web_vuln.rb
122
144
  - lib/ronin/vulns/web_vuln/http_request.rb
145
+ - man/ronin-vulns-command-injection.1
146
+ - man/ronin-vulns-command-injection.1.md
147
+ - man/ronin-vulns-completion.1
148
+ - man/ronin-vulns-completion.1.md
149
+ - man/ronin-vulns-irb.1
150
+ - man/ronin-vulns-irb.1.md
123
151
  - man/ronin-vulns-lfi.1
124
152
  - man/ronin-vulns-lfi.1.md
125
153
  - man/ronin-vulns-open-redirect.1
@@ -134,7 +162,10 @@ files:
134
162
  - man/ronin-vulns-sqli.1.md
135
163
  - man/ronin-vulns-ssti.1
136
164
  - man/ronin-vulns-ssti.1.md
165
+ - man/ronin-vulns.1
166
+ - man/ronin-vulns.1.md
137
167
  - ronin-vulns.gemspec
168
+ - scripts/setup
138
169
  homepage: https://ronin-rb.dev/
139
170
  licenses:
140
171
  - LGPL-3.0
@@ -1,81 +0,0 @@
1
- # frozen_string_literal: true
2
- #
3
- # ronin-vulns - A Ruby library for blind vulnerability testing.
4
- #
5
- # Copyright (c) 2022-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
6
- #
7
- # ronin-vulns is free software: you can redistribute it and/or modify
8
- # it under the terms of the GNU Lesser General Public License as published
9
- # by the Free Software Foundation, either version 3 of the License, or
10
- # (at your option) any later version.
11
- #
12
- # ronin-vulns is distributed in the hope that it will be useful,
13
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
- # GNU Lesser General Public License for more details.
16
- #
17
- # You should have received a copy of the GNU Lesser General Public License
18
- # along with ronin-vulns. If not, see <https://www.gnu.org/licenses/>.
19
- #
20
-
21
- require 'ronin/core/cli/logging'
22
-
23
- module Ronin
24
- module Vulns
25
- class CLI
26
- #
27
- # Mixin that adds methods for logging discovered web vulnerabilities.
28
- #
29
- module Logging
30
- include Core::CLI::Logging
31
-
32
- # Known vulnerability types and their printable names.
33
- VULN_TYPES = {
34
- open_redirect: 'Open Redirect',
35
- reflected_xss: 'reflected XSS',
36
-
37
- lfi: 'LFI',
38
- rfi: 'RFI',
39
- sqli: 'SQLi',
40
- ssti: 'SSTI'
41
- }
42
-
43
- #
44
- # Returns the printable vulnerability type for the vulnerability object.
45
- #
46
- # @param [Vuln] vuln
47
- #
48
- # @return [String]
49
- #
50
- def vuln_type(vuln)
51
- VULN_TYPES.fetch(vuln.class.vuln_type,'vulnerability')
52
- end
53
-
54
- #
55
- # Prints a web vulnerability.
56
- #
57
- # @param [WebVuln] vuln
58
- # The web vulnerability to print.
59
- #
60
- def log_vuln(vuln)
61
- vuln_name = vuln_type(vuln)
62
- location = if vuln.query_param
63
- "query param '#{vuln.query_param}'"
64
- elsif vuln.header_name
65
- "Header '#{vuln.header_name}'"
66
- elsif vuln.cookie_param
67
- "Cookie param '#{vuln.cookie_param}'"
68
- elsif vuln.form_param
69
- "form param '#{vuln.form_param}'"
70
- end
71
-
72
- if location
73
- log_info "Found #{vuln_name} on #{vuln.url} via #{location}!"
74
- else
75
- log_info "Found #{vuln_name} on #{vuln.url}!"
76
- end
77
- end
78
- end
79
- end
80
- end
81
- end