ronin-vulns 0.1.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/.github/workflows/ruby.yml +31 -0
  4. data/.gitignore +13 -0
  5. data/.rspec +1 -0
  6. data/.ruby-version +1 -0
  7. data/.yardopts +1 -0
  8. data/COPYING.txt +165 -0
  9. data/ChangeLog.md +22 -0
  10. data/Gemfile +34 -0
  11. data/README.md +328 -0
  12. data/Rakefile +34 -0
  13. data/bin/ronin-vulns +19 -0
  14. data/data/rfi_test.asp +21 -0
  15. data/data/rfi_test.aspx +25 -0
  16. data/data/rfi_test.cfm +27 -0
  17. data/data/rfi_test.jsp +19 -0
  18. data/data/rfi_test.php +24 -0
  19. data/data/rfi_test.pl +25 -0
  20. data/gemspec.yml +41 -0
  21. data/lib/ronin/vulns/cli/command.rb +39 -0
  22. data/lib/ronin/vulns/cli/commands/lfi.rb +145 -0
  23. data/lib/ronin/vulns/cli/commands/open_redirect.rb +119 -0
  24. data/lib/ronin/vulns/cli/commands/reflected_xss.rb +99 -0
  25. data/lib/ronin/vulns/cli/commands/rfi.rb +156 -0
  26. data/lib/ronin/vulns/cli/commands/scan.rb +316 -0
  27. data/lib/ronin/vulns/cli/commands/sqli.rb +133 -0
  28. data/lib/ronin/vulns/cli/commands/ssti.rb +126 -0
  29. data/lib/ronin/vulns/cli/logging.rb +78 -0
  30. data/lib/ronin/vulns/cli/web_vuln_command.rb +347 -0
  31. data/lib/ronin/vulns/cli.rb +45 -0
  32. data/lib/ronin/vulns/lfi/test_file.rb +91 -0
  33. data/lib/ronin/vulns/lfi.rb +266 -0
  34. data/lib/ronin/vulns/open_redirect.rb +118 -0
  35. data/lib/ronin/vulns/reflected_xss/context.rb +224 -0
  36. data/lib/ronin/vulns/reflected_xss/test_string.rb +149 -0
  37. data/lib/ronin/vulns/reflected_xss.rb +184 -0
  38. data/lib/ronin/vulns/rfi.rb +224 -0
  39. data/lib/ronin/vulns/root.rb +28 -0
  40. data/lib/ronin/vulns/sqli/error_pattern.rb +89 -0
  41. data/lib/ronin/vulns/sqli.rb +397 -0
  42. data/lib/ronin/vulns/ssti/test_expression.rb +104 -0
  43. data/lib/ronin/vulns/ssti.rb +203 -0
  44. data/lib/ronin/vulns/url_scanner.rb +218 -0
  45. data/lib/ronin/vulns/version.rb +26 -0
  46. data/lib/ronin/vulns/vuln.rb +49 -0
  47. data/lib/ronin/vulns/web_vuln/http_request.rb +223 -0
  48. data/lib/ronin/vulns/web_vuln.rb +774 -0
  49. data/man/ronin-vulns-lfi.1 +107 -0
  50. data/man/ronin-vulns-lfi.1.md +80 -0
  51. data/man/ronin-vulns-open-redirect.1 +98 -0
  52. data/man/ronin-vulns-open-redirect.1.md +73 -0
  53. data/man/ronin-vulns-reflected-xss.1 +95 -0
  54. data/man/ronin-vulns-reflected-xss.1.md +71 -0
  55. data/man/ronin-vulns-rfi.1 +107 -0
  56. data/man/ronin-vulns-rfi.1.md +80 -0
  57. data/man/ronin-vulns-scan.1 +138 -0
  58. data/man/ronin-vulns-scan.1.md +103 -0
  59. data/man/ronin-vulns-sqli.1 +107 -0
  60. data/man/ronin-vulns-sqli.1.md +80 -0
  61. data/man/ronin-vulns-ssti.1 +99 -0
  62. data/man/ronin-vulns-ssti.1.md +74 -0
  63. data/ronin-vulns.gemspec +60 -0
  64. metadata +161 -0
@@ -0,0 +1,138 @@
1
+ .\" Generated by kramdown-man 0.1.8
2
+ .\" https://github.com/postmodern/kramdown-man#readme
3
+ .TH ronin-vulns-scan 1 "May 2022" Ronin "User Manuals"
4
+ .LP
5
+ .SH SYNOPSIS
6
+ .LP
7
+ .HP
8
+ \fBronin-vulns scan\fR \[lB]\fIoptions\fP\[rB] \[lC]\fIURL\fP \.\.\. \[or] \fB--input\fR \fIFILE\fP\[rC]
9
+ .LP
10
+ .SH DESCRIPTION
11
+ .LP
12
+ .PP
13
+ Scans URL(s) for web vulnerabilities\. The URLs to scan can be given as
14
+ additional arguments or read from a file using the \fB--input\fR option\.
15
+ .LP
16
+ .SH ARGUMENTS
17
+ .LP
18
+ .TP
19
+ \fIURL\fP
20
+ A URL to scan\.
21
+ .LP
22
+ .SH OPTIONS
23
+ .LP
24
+ .TP
25
+ \fB--first\fR
26
+ Only find the first vulnerability for each URL\.
27
+ .LP
28
+ .TP
29
+ \fB-A\fR, \fB--all\fR
30
+ Find all vulnerabilities for each URL\.
31
+ .LP
32
+ .TP
33
+ \fB-H\fR, \fB--header\fR \[lq]\fIName\fP: \fIvalue\fP\[rq]
34
+ Sets an additional header using the given \fIName\fP and \fIvalue\fP\.
35
+ .LP
36
+ .TP
37
+ \fB-C\fR, \fB--cookie\fR \fICOOKIE\fP
38
+ Sets the raw \fBCookie\fR header\.
39
+ .LP
40
+ .TP
41
+ \fB-c\fR, \fB--cookie-param\fR \fINAME\fP\fB=\fR\fIVALUE\fP
42
+ Sets an additional \fBCookie\fR param using the given \fINAME\fP and \fIVALUE\fP\.
43
+ .LP
44
+ .TP
45
+ \fB-R\fR, \fB--referer\fR \fIURL\fP
46
+ Sets the \fBReferer\fR header\.
47
+ .LP
48
+ .TP
49
+ \fB-F\fR, \fB--form-param\fR \fINAME\fP\fB=\fR\fIVALUE\fP
50
+ Sets an additional form param using the given \fINAME\fP and \fIVALUE\fP\.
51
+ .LP
52
+ .TP
53
+ \fB--test-query-param\fR \fINAME\fP
54
+ Tests the URL query param name\.
55
+ .LP
56
+ .TP
57
+ \fB--test-all-query-params\fR
58
+ Test all URL query param names\.
59
+ .LP
60
+ .TP
61
+ \fB--test-header-name\fR \fINAME\fP
62
+ Tests the HTTP Header name\.
63
+ .LP
64
+ .TP
65
+ \fB--test-cookie-param\fR \fINAME\fP
66
+ Tests the HTTP Cookie name\.
67
+ .LP
68
+ .TP
69
+ \fB--test-all-cookie-params\fR
70
+ Test all Cookie param names\.
71
+ .LP
72
+ .TP
73
+ \fB--test-form-param\fR \fINAME\fP
74
+ Tests the form param name\.
75
+ .LP
76
+ .TP
77
+ \fB-i\fR, \fB--input\fR \fIFILE\fP
78
+ Reads URLs from the given \fIFILE\fP\.
79
+ .LP
80
+ .TP
81
+ \fB--lfi-os\fR \fBunix\fR\[or]\fBwindows\fR
82
+ Sets the OS to test for\.
83
+ .LP
84
+ .TP
85
+ \fB--lfi-depth\fR \fINUM\fP
86
+ Sets the directory depth to escape up\.
87
+ .LP
88
+ .TP
89
+ \fB--lfi-filter-bypass\fR \fBnull_byte\fR\[or]\fBdouble_escape\fR\[or]\fBbase64\fR\[or]\fBrot13\fR\[or]\fBzlib\fR
90
+ Sets the filter bypass strategy to use\.
91
+ .LP
92
+ .TP
93
+ \fB--rfi-filter-bypass\fR \fBdouble-encode\fR\[or]\fBsuffix-escape\fR\[or]\fBnull-byte\fR
94
+ Optional filter\-bypass strategy to use\.
95
+ .LP
96
+ .TP
97
+ \fB--rfi-script-lang\fR \fBasp\fR\[or]\fBasp.net\fR\[or]\fBcoldfusion\fR\[or]\fBjsp\fR\[or]\fBphp\fR\[or]\fBperl\fR
98
+ Explicitly specify the scripting language to test for\.
99
+ .LP
100
+ .TP
101
+ \fB--rfi-test-script-url\fR \fIURL\fP
102
+ Use an altnerative test script URL\.
103
+ .LP
104
+ .TP
105
+ \fB--sqli-escape-quote\fR
106
+ Escapes quotation marks\.
107
+ .LP
108
+ .TP
109
+ \fB--sqli-escape-parens\fR
110
+ Escapes parenthesis\.
111
+ .LP
112
+ .TP
113
+ \fB--sqli-terminate\fR
114
+ Terminates the SQL expression with a \fB--\fR\.
115
+ .LP
116
+ .HP
117
+ \fB--ssti-test-expr\fR \[lC]\fIX\fP*\fIY\fP \[or] \fIX\fP\[sl]\fIZ\fP \[or] \fIX\fP\[pl]\fIY\fP \[or] \fIX\fP\-\fIY\fP\[rC]
118
+ Optional numeric test to use\.
119
+ .LP
120
+ .TP
121
+ \fB--open-redirect-url\fR \fIURL\fP
122
+ Optional test URL to try to redirect to\.
123
+ .LP
124
+ .TP
125
+ \fB-h\fR, \fB--help\fR
126
+ Print help information\.
127
+ .LP
128
+ .SH AUTHOR
129
+ .LP
130
+ .PP
131
+ Postmodern
132
+ .MT postmodern\.mod3\[at]gmail\.com
133
+ .ME
134
+ .LP
135
+ .SH SEE ALSO
136
+ .LP
137
+ .PP
138
+ ronin\-vulns\-lfi(1) ronin\-vulns\-rfi(1) ronin\-vulns\-sqli(1) ronin\-vulns\-ssti(1) ronin\-vulns\-open\-redirect(1) ronin\-vulns\-reflected\-xss(1)
@@ -0,0 +1,103 @@
1
+ # ronin-vulns-scan 1 "May 2022" Ronin "User Manuals"
2
+
3
+ ## SYNOPSIS
4
+
5
+ `ronin-vulns scan` [*options*] {*URL* ... \| `--input` *FILE*}
6
+
7
+ ## DESCRIPTION
8
+
9
+ Scans URL(s) for web vulnerabilities. The URLs to scan can be given as
10
+ additional arguments or read from a file using the `--input` option.
11
+
12
+ ## ARGUMENTS
13
+
14
+ *URL*
15
+ A URL to scan.
16
+
17
+ ## OPTIONS
18
+
19
+ `--first`
20
+ Only find the first vulnerability for each URL.
21
+
22
+ `-A`, `--all`
23
+ Find all vulnerabilities for each URL.
24
+
25
+ `-H`, `--header` "*Name*: *value*"
26
+ Sets an additional header using the given *Name* and *value*.
27
+
28
+ `-C`, `--cookie` *COOKIE*
29
+ Sets the raw `Cookie` header.
30
+
31
+ `-c`, `--cookie-param` *NAME*`=`*VALUE*
32
+ Sets an additional `Cookie` param using the given *NAME* and *VALUE*.
33
+
34
+ `-R`, `--referer` *URL*
35
+ Sets the `Referer` header.
36
+
37
+ `-F`, `--form-param` *NAME*`=`*VALUE*
38
+ Sets an additional form param using the given *NAME* and *VALUE*.
39
+
40
+ `--test-query-param` *NAME*
41
+ Tests the URL query param name.
42
+
43
+ `--test-all-query-params`
44
+ Test all URL query param names.
45
+
46
+ `--test-header-name` *NAME*
47
+ Tests the HTTP Header name.
48
+
49
+ `--test-cookie-param` *NAME*
50
+ Tests the HTTP Cookie name.
51
+
52
+ `--test-all-cookie-params`
53
+ Test all Cookie param names.
54
+
55
+ `--test-form-param` *NAME*
56
+ Tests the form param name.
57
+
58
+ `-i`, `--input` *FILE*
59
+ Reads URLs from the given *FILE*.
60
+
61
+ `--lfi-os` `unix`\|`windows`
62
+ Sets the OS to test for.
63
+
64
+ `--lfi-depth` *NUM*
65
+ Sets the directory depth to escape up.
66
+
67
+ `--lfi-filter-bypass` `null_byte`\|`double_escape`\|`base64`\|`rot13`\|`zlib`
68
+ Sets the filter bypass strategy to use.
69
+
70
+ `--rfi-filter-bypass` `double-encode`\|`suffix-escape`\|`null-byte`
71
+ Optional filter-bypass strategy to use.
72
+
73
+ `--rfi-script-lang` `asp`\|`asp.net`\|`coldfusion`\|`jsp`\|`php`\|`perl`
74
+ Explicitly specify the scripting language to test for.
75
+
76
+ `--rfi-test-script-url` *URL*
77
+ Use an altnerative test script URL.
78
+
79
+ `--sqli-escape-quote`
80
+ Escapes quotation marks.
81
+
82
+ `--sqli-escape-parens`
83
+ Escapes parenthesis.
84
+
85
+ `--sqli-terminate`
86
+ Terminates the SQL expression with a `--`.
87
+
88
+ `--ssti-test-expr` {*X*\**Y* \| *X*/*Z* \| *X*+*Y* \| *X*-*Y*}
89
+ Optional numeric test to use.
90
+
91
+ `--open-redirect-url` *URL*
92
+ Optional test URL to try to redirect to.
93
+
94
+ `-h`, `--help`
95
+ Print help information.
96
+
97
+ ## AUTHOR
98
+
99
+ Postmodern <postmodern.mod3@gmail.com>
100
+
101
+ ## SEE ALSO
102
+
103
+ ronin-vulns-lfi(1) ronin-vulns-rfi(1) ronin-vulns-sqli(1) ronin-vulns-ssti(1) ronin-vulns-open-redirect(1) ronin-vulns-reflected-xss(1)
@@ -0,0 +1,107 @@
1
+ .\" Generated by kramdown-man 0.1.8
2
+ .\" https://github.com/postmodern/kramdown-man#readme
3
+ .TH ronin-vulns-sqli 1 "May 2022" Ronin "User Manuals"
4
+ .LP
5
+ .SH SYNOPSIS
6
+ .LP
7
+ .HP
8
+ \fBronin-vulns sqli\fR \[lB]\fIoptions\fP\[rB] \[lC]\fIURL\fP \.\.\. \[or] \fB--input\fR \fIFILE\fP\[rC]
9
+ .LP
10
+ .SH DESCRIPTION
11
+ .LP
12
+ .PP
13
+ Scans URL(s) for SQL injection (SQLi) vulnerabilities\. The URLs to scan
14
+ can be given as additional arguments or read from a file using the \fB--input\fR
15
+ option\.
16
+ .LP
17
+ .SH ARGUMENTS
18
+ .LP
19
+ .TP
20
+ \fIURL\fP
21
+ A URL to scan\.
22
+ .LP
23
+ .SH OPTIONS
24
+ .LP
25
+ .TP
26
+ \fB--first\fR
27
+ Only find the first vulnerability for each URL\.
28
+ .LP
29
+ .TP
30
+ \fB-A\fR, \fB--all\fR
31
+ Find all vulnerabilities for each URL\.
32
+ .LP
33
+ .TP
34
+ \fB-H\fR, \fB--header\fR \[lq]\fIName\fP: \fIvalue\fP\[rq]
35
+ Sets an additional header using the given \fIName\fP and \fIvalue\fP\.
36
+ .LP
37
+ .TP
38
+ \fB-C\fR, \fB--cookie\fR \fICOOKIE\fP
39
+ Sets the raw \fBCookie\fR header\.
40
+ .LP
41
+ .TP
42
+ \fB-c\fR, \fB--cookie-param\fR \fINAME\fP\fB=\fR\fIVALUE\fP
43
+ Sets an additional \fBCookie\fR param using the given \fINAME\fP and \fIVALUE\fP\.
44
+ .LP
45
+ .TP
46
+ \fB-R\fR, \fB--referer\fR \fIURL\fP
47
+ Sets the \fBReferer\fR header\.
48
+ .LP
49
+ .TP
50
+ \fB-F\fR, \fB--form-param\fR \fINAME\fP\fB=\fR\fIVALUE\fP
51
+ Sets an additional form param using the given \fINAME\fP and \fIVALUE\fP\.
52
+ .LP
53
+ .TP
54
+ \fB--test-query-param\fR \fINAME\fP
55
+ Tests the URL query param name\.
56
+ .LP
57
+ .TP
58
+ \fB--test-all-query-params\fR
59
+ Test all URL query param names\.
60
+ .LP
61
+ .TP
62
+ \fB--test-header-name\fR \fINAME\fP
63
+ Tests the HTTP Header name\.
64
+ .LP
65
+ .TP
66
+ \fB--test-cookie-param\fR \fINAME\fP
67
+ Tests the HTTP Cookie name\.
68
+ .LP
69
+ .TP
70
+ \fB--test-all-cookie-params\fR
71
+ Test all Cookie param names\.
72
+ .LP
73
+ .TP
74
+ \fB--test-form-param\fR \fINAME\fP
75
+ Tests the form param name\.
76
+ .LP
77
+ .TP
78
+ \fB-i\fR, \fB--input\fR \fIFILE\fP
79
+ Reads URLs from the given \fIFILE\fP\.
80
+ .LP
81
+ .TP
82
+ \fB-Q\fR, \fB--escape-quote\fR
83
+ Escapes quotation marks\.
84
+ .LP
85
+ .TP
86
+ \fB-P\fR, \fB--escape-parens\fR
87
+ Escapes parenthesis\.
88
+ .LP
89
+ .TP
90
+ \fB-T\fR, \fB--terminate\fR
91
+ Terminates the SQL expression with a \fB--\fR\.
92
+ .LP
93
+ .TP
94
+ \fB-h\fR, \fB--help\fR
95
+ Print help information\.
96
+ .LP
97
+ .SH AUTHOR
98
+ .LP
99
+ .PP
100
+ Postmodern
101
+ .MT postmodern\.mod3\[at]gmail\.com
102
+ .ME
103
+ .LP
104
+ .SH SEE ALSO
105
+ .LP
106
+ .PP
107
+ ronin\-vulns\-scan(1)
@@ -0,0 +1,80 @@
1
+ # ronin-vulns-sqli 1 "May 2022" Ronin "User Manuals"
2
+
3
+ ## SYNOPSIS
4
+
5
+ `ronin-vulns sqli` [*options*] {*URL* ... \| `--input` *FILE*}
6
+
7
+ ## DESCRIPTION
8
+
9
+ Scans URL(s) for SQL injection (SQLi) vulnerabilities. The URLs to scan
10
+ can be given as additional arguments or read from a file using the `--input`
11
+ option.
12
+
13
+ ## ARGUMENTS
14
+
15
+ *URL*
16
+ A URL to scan.
17
+
18
+ ## OPTIONS
19
+
20
+ `--first`
21
+ Only find the first vulnerability for each URL.
22
+
23
+ `-A`, `--all`
24
+ Find all vulnerabilities for each URL.
25
+
26
+ `-H`, `--header` "*Name*: *value*"
27
+ Sets an additional header using the given *Name* and *value*.
28
+
29
+ `-C`, `--cookie` *COOKIE*
30
+ Sets the raw `Cookie` header.
31
+
32
+ `-c`, `--cookie-param` *NAME*`=`*VALUE*
33
+ Sets an additional `Cookie` param using the given *NAME* and *VALUE*.
34
+
35
+ `-R`, `--referer` *URL*
36
+ Sets the `Referer` header.
37
+
38
+ `-F`, `--form-param` *NAME*`=`*VALUE*
39
+ Sets an additional form param using the given *NAME* and *VALUE*.
40
+
41
+ `--test-query-param` *NAME*
42
+ Tests the URL query param name.
43
+
44
+ `--test-all-query-params`
45
+ Test all URL query param names.
46
+
47
+ `--test-header-name` *NAME*
48
+ Tests the HTTP Header name.
49
+
50
+ `--test-cookie-param` *NAME*
51
+ Tests the HTTP Cookie name.
52
+
53
+ `--test-all-cookie-params`
54
+ Test all Cookie param names.
55
+
56
+ `--test-form-param` *NAME*
57
+ Tests the form param name.
58
+
59
+ `-i`, `--input` *FILE*
60
+ Reads URLs from the given *FILE*.
61
+
62
+ `-Q`, `--escape-quote`
63
+ Escapes quotation marks.
64
+
65
+ `-P`, `--escape-parens`
66
+ Escapes parenthesis.
67
+
68
+ `-T`, `--terminate`
69
+ Terminates the SQL expression with a `--`.
70
+
71
+ `-h`, `--help`
72
+ Print help information.
73
+
74
+ ## AUTHOR
75
+
76
+ Postmodern <postmodern.mod3@gmail.com>
77
+
78
+ ## SEE ALSO
79
+
80
+ ronin-vulns-scan(1)
@@ -0,0 +1,99 @@
1
+ .\" Generated by kramdown-man 0.1.8
2
+ .\" https://github.com/postmodern/kramdown-man#readme
3
+ .TH ronin-vulns-lfi 1 "May 2022" Ronin "User Manuals"
4
+ .LP
5
+ .SH SYNOPSIS
6
+ .LP
7
+ .HP
8
+ \fBronin-vulns lfi\fR \[lB]\fIoptions\fP\[rB] \[lC]\fIURL\fP \.\.\. \[or] \fB--input\fR \fIFILE\fP\[rC]
9
+ .LP
10
+ .SH DESCRIPTION
11
+ .LP
12
+ .PP
13
+ Scans URL(s) for Server Side Template Injection (SSTI) vulnerabilities\. The URLs
14
+ to scan can be given as additional arguments or read from a file using the
15
+ \fB--input\fR option\.
16
+ .LP
17
+ .SH ARGUMENTS
18
+ .LP
19
+ .TP
20
+ \fIURL\fP
21
+ A URL to scan\.
22
+ .LP
23
+ .SH OPTIONS
24
+ .LP
25
+ .TP
26
+ \fB--first\fR
27
+ Only find the first vulnerability for each URL\.
28
+ .LP
29
+ .TP
30
+ \fB-A\fR, \fB--all\fR
31
+ Find all vulnerabilities for each URL\.
32
+ .LP
33
+ .TP
34
+ \fB-H\fR, \fB--header\fR \[lq]\fIName\fP: \fIvalue\fP\[rq]
35
+ Sets an additional header using the given \fIName\fP and \fIvalue\fP\.
36
+ .LP
37
+ .TP
38
+ \fB-C\fR, \fB--cookie\fR \fICOOKIE\fP
39
+ Sets the raw \fBCookie\fR header\.
40
+ .LP
41
+ .TP
42
+ \fB-c\fR, \fB--cookie-param\fR \fINAME\fP\fB=\fR\fIVALUE\fP
43
+ Sets an additional \fBCookie\fR param using the given \fINAME\fP and \fIVALUE\fP\.
44
+ .LP
45
+ .TP
46
+ \fB-R\fR, \fB--referer\fR \fIURL\fP
47
+ Sets the \fBReferer\fR header\.
48
+ .LP
49
+ .TP
50
+ \fB-F\fR, \fB--form-param\fR \fINAME\fP\fB=\fR\fIVALUE\fP
51
+ Sets an additional form param using the given \fINAME\fP and \fIVALUE\fP\.
52
+ .LP
53
+ .TP
54
+ \fB--test-query-param\fR \fINAME\fP
55
+ Tests the URL query param name\.
56
+ .LP
57
+ .TP
58
+ \fB--test-all-query-params\fR
59
+ Test all URL query param names\.
60
+ .LP
61
+ .TP
62
+ \fB--test-header-name\fR \fINAME\fP
63
+ Tests the HTTP Header name\.
64
+ .LP
65
+ .TP
66
+ \fB--test-cookie-param\fR \fINAME\fP
67
+ Tests the HTTP Cookie name\.
68
+ .LP
69
+ .TP
70
+ \fB--test-all-cookie-params\fR
71
+ Test all Cookie param names\.
72
+ .LP
73
+ .TP
74
+ \fB--test-form-param\fR \fINAME\fP
75
+ Tests the form param name\.
76
+ .LP
77
+ .TP
78
+ \fB-i\fR, \fB--input\fR \fIFILE\fP
79
+ Reads URLs from the given \fIFILE\fP\.
80
+ .LP
81
+ .HP
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]
83
+ Optional numeric test to use\.
84
+ .LP
85
+ .TP
86
+ \fB-h\fR, \fB--help\fR
87
+ Print help information\.
88
+ .LP
89
+ .SH AUTHOR
90
+ .LP
91
+ .PP
92
+ Postmodern
93
+ .MT postmodern\.mod3\[at]gmail\.com
94
+ .ME
95
+ .LP
96
+ .SH SEE ALSO
97
+ .LP
98
+ .PP
99
+ ronin\-vulns\-scan(1)
@@ -0,0 +1,74 @@
1
+ # ronin-vulns-lfi 1 "May 2022" Ronin "User Manuals"
2
+
3
+ ## SYNOPSIS
4
+
5
+ `ronin-vulns lfi` [*options*] {*URL* ... \| `--input` *FILE*}
6
+
7
+ ## DESCRIPTION
8
+
9
+ Scans URL(s) for Server Side Template Injection (SSTI) vulnerabilities. The URLs
10
+ to scan can be given as additional arguments or read from a file using the
11
+ `--input` option.
12
+
13
+ ## ARGUMENTS
14
+
15
+ *URL*
16
+ A URL to scan.
17
+
18
+ ## OPTIONS
19
+
20
+ `--first`
21
+ Only find the first vulnerability for each URL.
22
+
23
+ `-A`, `--all`
24
+ Find all vulnerabilities for each URL.
25
+
26
+ `-H`, `--header` "*Name*: *value*"
27
+ Sets an additional header using the given *Name* and *value*.
28
+
29
+ `-C`, `--cookie` *COOKIE*
30
+ Sets the raw `Cookie` header.
31
+
32
+ `-c`, `--cookie-param` *NAME*`=`*VALUE*
33
+ Sets an additional `Cookie` param using the given *NAME* and *VALUE*.
34
+
35
+ `-R`, `--referer` *URL*
36
+ Sets the `Referer` header.
37
+
38
+ `-F`, `--form-param` *NAME*`=`*VALUE*
39
+ Sets an additional form param using the given *NAME* and *VALUE*.
40
+
41
+ `--test-query-param` *NAME*
42
+ Tests the URL query param name.
43
+
44
+ `--test-all-query-params`
45
+ Test all URL query param names.
46
+
47
+ `--test-header-name` *NAME*
48
+ Tests the HTTP Header name.
49
+
50
+ `--test-cookie-param` *NAME*
51
+ Tests the HTTP Cookie name.
52
+
53
+ `--test-all-cookie-params`
54
+ Test all Cookie param names.
55
+
56
+ `--test-form-param` *NAME*
57
+ Tests the form param name.
58
+
59
+ `-i`, `--input` *FILE*
60
+ Reads URLs from the given *FILE*.
61
+
62
+ `-T`, `--test-expr` {*X\*Y* \| *X/Z* \| *X+Y* \| *X-Y*}
63
+ Optional numeric test to use.
64
+
65
+ `-h`, `--help`
66
+ Print help information.
67
+
68
+ ## AUTHOR
69
+
70
+ Postmodern <postmodern.mod3@gmail.com>
71
+
72
+ ## SEE ALSO
73
+
74
+ ronin-vulns-scan(1)
@@ -0,0 +1,60 @@
1
+ require 'yaml'
2
+
3
+ Gem::Specification.new do |gem|
4
+ gemspec = YAML.load_file('gemspec.yml')
5
+
6
+ gem.name = gemspec.fetch('name')
7
+ gem.version = gemspec.fetch('version') do
8
+ lib_dir = File.join(File.dirname(__FILE__),'lib')
9
+ $LOAD_PATH << lib_dir unless $LOAD_PATH.include?(lib_dir)
10
+
11
+ require 'ronin/vulns/version'
12
+ Ronin::Vulns::VERSION
13
+ end
14
+
15
+ gem.summary = gemspec['summary']
16
+ gem.description = gemspec['description']
17
+ gem.licenses = Array(gemspec['license'])
18
+ gem.authors = Array(gemspec['authors'])
19
+ gem.email = gemspec['email']
20
+ gem.homepage = gemspec['homepage']
21
+ gem.metadata = gemspec['metadata'] if gemspec['metadata']
22
+
23
+ glob = lambda { |patterns| gem.files & Dir[*patterns] }
24
+
25
+ gem.files = `git ls-files`.split($/)
26
+ gem.files = glob[gemspec['files']] if gemspec['files']
27
+ gem.files += Array(gemspec['generated_files'])
28
+ gem.files -= glob[gemspec['test_files'] || '{test,spec}/{**/}*']
29
+
30
+ gem.executables = gemspec.fetch('executables') do
31
+ glob['bin/*'].map { |path| File.basename(path) }
32
+ end
33
+
34
+ gem.extensions = glob[gemspec['extensions'] || 'ext/**/extconf.rb']
35
+ gem.test_files = glob[gemspec['test_files'] || 'spec/{**/}*_spec.rb']
36
+ gem.extra_rdoc_files = glob[gemspec['extra_doc_files'] || '*.{txt,md}']
37
+
38
+ gem.require_paths = Array(gemspec.fetch('require_paths') {
39
+ %w[ext lib].select { |dir| File.directory?(dir) }
40
+ })
41
+
42
+ gem.requirements = gemspec['requirements']
43
+ gem.required_ruby_version = gemspec['required_ruby_version']
44
+ gem.required_rubygems_version = gemspec['required_rubygems_version']
45
+ gem.post_install_message = gemspec['post_install_message']
46
+
47
+ split = lambda { |string| string.split(/,\s*/) }
48
+
49
+ if gemspec['dependencies']
50
+ gemspec['dependencies'].each do |name,versions|
51
+ gem.add_dependency(name,split[versions])
52
+ end
53
+ end
54
+
55
+ if gemspec['development_dependencies']
56
+ gemspec['development_dependencies'].each do |name,versions|
57
+ gem.add_development_dependency(name,split[versions])
58
+ end
59
+ end
60
+ end