Skip to content

Commit f7962eb

Browse files
authored
Merge pull request #74 from EMSeek/master
xmas update
2 parents 132db32 + ce2d9f5 commit f7962eb

File tree

21 files changed

+73
-26
lines changed

21 files changed

+73
-26
lines changed

Changelog

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
3.7 2024 Dec 20
2+
Updated javascript rules
3+
Updated typescript rules
4+
Updated sqli rules
5+
Updated ruby rules
6+
Updated php rules
7+
Updated dotnet rules
8+
Updated java rules
9+
Updated fruit rules
10+
Updated secret rules
11+
Updated xss rules
12+
Reduced false positives in default rules
13+
Reduced false positives in fruit rules
14+
115
3.6 2024 Apr 09
216
Updated ruby rules
317
Updated JavaScript rules

graudit

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
set -- $GRARGS $@
66
set -e
77
set -o pipefail
8-
VERSION='3.6'
8+
VERSION='3.7'
99
basedir=$(dirname "$0")
1010
BINFILE=$(which grep)
1111

@@ -44,7 +44,7 @@ banner() {
4444
\___ /|__| (____ /____/\____ | |__||__|
4545
/_____/ \/ \/
4646
grep rough audit - static analysis tool
47-
v3.6 written by @Wireghoul
47+
v3.7 written by @Wireghoul
4848
=================================[justanotherhacker.com]==='
4949
fi
5050
}

signatures/dotnet.db

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ new[[:space:]]+Cli[[:space:]]*\(.*
4040
(ORDER[[:space:]]+BY|order[[:space:]]+by)[[:space:]]+.*\+[[:space:]]*[Rr]equest
4141
(LIMIT|limit)[[:space:]]+([0-9]+,[[:space:]]*[Rr]equest\..*|[Rr]request\..*)
4242
Process.Start[[:space:]]*\(.*\+
43-
\.Arguments[[:space:]]*=(.*[\'\"][[:space:]]*\+[[:space:]]*[^\'\"]+|.*[^\'\"]+[[:space:]]*\+[[:space:]]*[\'\"])
43+
\.Arguments[[:space:]]*=([^;\)]*[\'\"][[:space:]]*\+[[:space:]]*[^\'\"]+|[^;\)]*[^\'\"]+[[:space:]]*\+[[:space:]]*[\'\"])
4444
\.SelectNodes[[:space:]]*\(.*[\'\"][[:space:]]*\+[[:space:]]*[^\'\"]+
4545
ReadAllBytes[[:space:]]*\(.*[Rr]equest
4646
# DotNet input controls

signatures/dotnet/fruit.db

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
(ORDER[[:space:]]+BY|order[[:space:]]+by)[[:space:]]+.*\+[[:space:]]*[Rr]equest
88
(LIMIT|limit)[[:space:]]+([0-9]+,[[:space:]]*[Rr]equest\..*|[Rr]request\..*)
99
Process.Start[[:space:]]*\(.*\+
10-
\.Arguments[[:space:]]*=(.*[\'\"][[:space:]]*\+[[:space:]]*[^\'\"]+|.*[^\'\"]+[[:space:]]*\+[[:space:]]*[\'\"])
10+
\.Arguments[[:space:]]*=([^;\)]*[\'\"][[:space:]]*\+[[:space:]]*[^\'\"]+|[^;\)]*[^\'\"]+[[:space:]]*\+[[:space:]]*[\'\"])
1111
\.SelectNodes[[:space:]]*\(.*[\'\"][[:space:]]*\+[[:space:]]*[^\'\"]+
1212
ReadAllBytes[[:space:]]*\(.*[Rr]equest

signatures/fruit.db

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ strnc(at|py)[[:space:]]*\([^,]+,[^,]+,[[:space:]]*strlen[[:space:]]*\([^\)]+\)[[
2424
(ORDER[[:space:]]+BY|order[[:space:]]+by)[[:space:]]+.*\+[[:space:]]*[Rr]equest
2525
(LIMIT|limit)[[:space:]]+([0-9]+,[[:space:]]*[Rr]equest\..*|[Rr]request\..*)
2626
Process.Start[[:space:]]*\(.*\+
27-
\.Arguments[[:space:]]*=(.*[\'\"][[:space:]]*\+[[:space:]]*[^\'\"]+|.*[^\'\"]+[[:space:]]*\+[[:space:]]*[\'\"])
27+
\.Arguments[[:space:]]*=([^;\)]*[\'\"][[:space:]]*\+[[:space:]]*[^\'\"]+|[^;\)]*[^\'\"]+[[:space:]]*\+[[:space:]]*[\'\"])
2828
\.SelectNodes[[:space:]]*\(.*[\'\"][[:space:]]*\+[[:space:]]*[^\'\"]+
2929
ReadAllBytes[[:space:]]*\(.*[Rr]equest
3030
\.Write(String)?[[:space:]]*\(.*URL\.Query[[:space:]]*\(.*\)
@@ -41,17 +41,17 @@ out\.print(ln)?.*([Rr]eq(uest)?|\.[Gg]et[Pp]aram)
4141
\.exec[[:space:]]*\([^\)\;]+[\'\"][[:space:]]*\+.*
4242
(execute|create|new)Query[[:space:]]*\(.*[\"\'][[:space:]]*\+[[:space:]]*[^\"\']+
4343
queryforObject[[:space:]]*\(.*[\"\'][[:space:]]*\+[[:space:]]*[^\"\']+
44-
eval[[:space:]]*\([^\)\;]*([Rr]eq(uest)?|\.[Gg]et[Pp]aram).*\)
44+
eval[[:space:]]*\([^\)\;\"]*([Rr]eq(uest)?[\.\)]|\.[Gg]et[Pp]aram[[:space:]]*[\[\(]).*\)
4545
\.getDocument[[:space:]]*\([^\)\;]+([Rr]eq(uest)?|\.g[Gg]et[Pp]aram).*\)
46-
(WHERE|where)[[:space:]]+.*=[[:space:]]*[\'\"][\'\"]?[[:space:]]*\+[[:space:]]*[^\"\']+
46+
(WHERE|where)[[:space:]]+[^;]+=[[:space:]]*[\'\"][\'\"]?[[:space:]]*\+[[:space:]]*[^\"\']+
4747
[\'\" ]+AND[[:space:]]+.*=[[:space:]]*[\'\"][\'\"]?[[:space:]]*\+[[:space:]]*[^\"\']
4848
(LIKE|like)[[:space:]]+[\'\"A-Za-z0-9%]+[\'\"][\'\"]?[[:space:]]*\+[[:space:]]*[^\"\']
4949
(ORDER[[:space:]]+BY|order[[:space:]]+by)[[:space:]]+.*[\'\"][\'\"]?[[:space:]]*\+[[:space:]]*[^\"\']
5050
(LIMIT|limit)[[:space:]]+([0-9,]+)?[;:space:]]*[\'\"][\'\"]?[[:space:]]*\+[[:space:]]*[^\"\']
51-
\.query\(.*[\'\"][[:space:]]*\+.*
51+
\.query\([^\);]*[\'\"][[:space:]]*\+[[:space:]]*[^\'\"]+
5252
eval[[:space:]]*\([^\)\;]+[\'\"][[:space:]]*\+[[:space:]]*[^\'\"]+
5353
<%-[[:space:]]+.*%>
54-
\.(spawn|exec)(File)?(Sync)?\([^\)]+([\'\"] *\+|\$\{)
54+
\.(spawn|exec)(File)?(Sync)?\([^\);]*([\'\"] *\+|\$\{)
5555
asm[[:space:]]+[\'\"].*
5656
unsafeAddr
5757
execShellCmd[[:space:]]*\(
@@ -94,7 +94,7 @@ require[[:space:]]*\(.*\$(_ENV|_GET|_POST|_COOKIE|_REQUEST|_SERVER|HTTP|http).*\
9494
require_once[[:space:]]*\(.*\$(_ENV|_GET|_POST|_COOKIE|_REQUEST|_SERVER|HTTP|http).*\)
9595
fopen[[:space:]]*\(.*\$(_ENV|_GET|_POST|_COOKIE|_REQUEST|_SERVER|HTTP|http).*\)
9696
readfile[[:space:]]*\(.*\$(_ENV|_GET|_POST|_COOKIE|_REQUEST|_SERVER|HTTP|http).*\)
97-
file_get_contents[[:space:]]*\(.*\$(_ENV|_GET|_POST|_COOKIE|_REQUEST|_SERVER|HTTP|http).*\)
97+
file_(get|put)_contents[[:space:]]*\(.*\$(_ENV|_GET|_POST|_COOKIE|_REQUEST|_SERVER|HTTP|http).*\)
9898
(is_dir|file_exists|unlink)[[:space:]]*\(\"?\$(_ENV|_GET|_POST|_COOKE|_REQUEST|_SERVER|HTTP|http).*\)
9999
show_source[[:space:]]*\(.*\$(_ENV|_GET|_POST|_COOKIE|_REQUEST|_SERVER|HTTP|http).*\)
100100
preg_replace[[:space:]]*\([\'"](.).*\1[igsu]*e
@@ -113,10 +113,13 @@ pg_query[[:space:]]*\(.*\$(_ENV|_GET|_POST|_COOKIE|_REQUEST|_SERVER|HTTP|http).*
113113
(ORDER[[:space:]]+BY|order[[:space:]]+by)[[:space:]]+.*\$(_ENV|_GET|_POST|_COOKIE|_REQUEST|_SERVER|HTTP|http)
114114
(LIMIT|limit)[[:space:]]+.*\$(_ENV|_GET|_POST|_COOKIE|_REQUEST|_SERVER|HTTP|http)
115115
\.execute[[:space:]]*\([\"\'].*%.*[\"\'][[:space:]]*%.*\)
116+
^[[:space:]]*`[^`]*#\{[^\}]+\}.*`
117+
[=\(][[:space:]]*`[^`]*#\{[^\}]+.*\}
118+
render[[:space:]]+:?(text|plain):?.*#\{[Pp][Aa][Rr][Aa][Mm][^\}]*\}
116119
Source\.fromFile[[:space:]]*\([^\)\;]+[\'\"][[:space:]]*\+[[:space:]]*[^\'\"]+
117120
sql\".*\#\$.*\"\.as\[.*
118121
SQL[[:space:]]*\([^\)\;]+[\'\"][[:space:]]*\+[[:space:]]*[^\'\"]+
119-
(WHERE|where)[[:space:]]+[^;]+(=|[Ii][[Nn][[:space:]]+).*\$\{
122+
(WHERE|where)[[:space:]]+[^\;:\)]+(=|[Ii][[Nn][[:space:]]+[\+\"\(]).*\$\{
120123
[\'\" ]+AND[[:space:]]+.*=[[:space:]]?\$\{[^\}]+\}
121124
(LIKE|like)[[:space:]]+(['"][^\'\"]*)?\$\{[^\}]+\}
122125
(ORDER[[:space:]]+BY|order[[:space:]]+by)[[:space:]]+.*\$\{[^\}]+\}

signatures/java.db

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ out\.print(ln)?.*([Rr]eq(uest)?|\.[Gg]et[Pp]aram)
3636
\.exec[[:space:]]*\([^\)\;]+[\'\"][[:space:]]*\+.*
3737
(execute|create|new)Query[[:space:]]*\(.*[\"\'][[:space:]]*\+[[:space:]]*[^\"\']+
3838
queryforObject[[:space:]]*\(.*[\"\'][[:space:]]*\+[[:space:]]*[^\"\']+
39-
eval[[:space:]]*\([^\)\;]*([Rr]eq(uest)?|\.[Gg]et[Pp]aram).*\)
39+
eval[[:space:]]*\([^\)\;\"]*([Rr]eq(uest)?[\.\)]|\.[Gg]et[Pp]aram[[:space:]]*[\[\(]).*\)
4040
\.getDocument[[:space:]]*\([^\)\;]+([Rr]eq(uest)?|\.g[Gg]et[Pp]aram).*\)
41-
(WHERE|where)[[:space:]]+.*=[[:space:]]*[\'\"][\'\"]?[[:space:]]*\+[[:space:]]*[^\"\']+
41+
(WHERE|where)[[:space:]]+[^;]+=[[:space:]]*[\'\"][\'\"]?[[:space:]]*\+[[:space:]]*[^\"\']+
4242
[\'\" ]+AND[[:space:]]+.*=[[:space:]]*[\'\"][\'\"]?[[:space:]]*\+[[:space:]]*[^\"\']
4343
(LIKE|like)[[:space:]]+[\'\"A-Za-z0-9%]+[\'\"][\'\"]?[[:space:]]*\+[[:space:]]*[^\"\']
4444
(ORDER[[:space:]]+BY|order[[:space:]]+by)[[:space:]]+.*[\'\"][\'\"]?[[:space:]]*\+[[:space:]]*[^\"\']

signatures/java/fruit.db

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ out\.print(ln)?.*([Rr]eq(uest)?|\.[Gg]et[Pp]aram)
44
\.exec[[:space:]]*\([^\)\;]+[\'\"][[:space:]]*\+.*
55
(execute|create|new)Query[[:space:]]*\(.*[\"\'][[:space:]]*\+[[:space:]]*[^\"\']+
66
queryforObject[[:space:]]*\(.*[\"\'][[:space:]]*\+[[:space:]]*[^\"\']+
7-
eval[[:space:]]*\([^\)\;]*([Rr]eq(uest)?|\.[Gg]et[Pp]aram).*\)
7+
eval[[:space:]]*\([^\)\;\"]*([Rr]eq(uest)?[\.\)]|\.[Gg]et[Pp]aram[[:space:]]*[\[\(]).*\)
88
\.getDocument[[:space:]]*\([^\)\;]+([Rr]eq(uest)?|\.g[Gg]et[Pp]aram).*\)
9-
(WHERE|where)[[:space:]]+.*=[[:space:]]*[\'\"][\'\"]?[[:space:]]*\+[[:space:]]*[^\"\']+
9+
(WHERE|where)[[:space:]]+[^;]+=[[:space:]]*[\'\"][\'\"]?[[:space:]]*\+[[:space:]]*[^\"\']+
1010
[\'\" ]+AND[[:space:]]+.*=[[:space:]]*[\'\"][\'\"]?[[:space:]]*\+[[:space:]]*[^\"\']
1111
(LIKE|like)[[:space:]]+[\'\"A-Za-z0-9%]+[\'\"][\'\"]?[[:space:]]*\+[[:space:]]*[^\"\']
1212
(ORDER[[:space:]]+BY|order[[:space:]]+by)[[:space:]]+.*[\'\"][\'\"]?[[:space:]]*\+[[:space:]]*[^\"\']

signatures/js.db

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ additionalArguments
1414
enableWebSQL
1515
openExternal[[:space:]]*\(
1616
ELECTRON_RUN_AS_NODE
17-
\.query\(.*[\'\"][[:space:]]*\+.*
17+
\.query\([^\);]*[\'\"][[:space:]]*\+[[:space:]]*[^\'\"]+
1818
eval[[:space:]]*\([^\)\;]+[\'\"][[:space:]]*\+[[:space:]]*[^\'\"]+
1919
<%-[[:space:]]+.*%>
20-
\.(spawn|exec)(File)?(Sync)?\([^\)]+([\'\"] *\+|\$\{)
20+
\.(spawn|exec)(File)?(Sync)?\([^\);]*([\'\"] *\+|\$\{)
2121
eval[[:space:]]*\(
2222
dangerouslySetInnerHTML
2323
trustAsHtml

signatures/js/fruit.db

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
\.query\(.*[\'\"][[:space:]]*\+.*
1+
\.query\([^\);]*[\'\"][[:space:]]*\+[[:space:]]*[^\'\"]+
22
eval[[:space:]]*\([^\)\;]+[\'\"][[:space:]]*\+[[:space:]]*[^\'\"]+
33
<%-[[:space:]]+.*%>
4-
\.(spawn|exec)(File)?(Sync)?\([^\)]+([\'\"] *\+|\$\{)
4+
\.(spawn|exec)(File)?(Sync)?\([^\);]*([\'\"] *\+|\$\{)

signatures/php.db

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ require[[:space:]]*\(.*\$(_ENV|_GET|_POST|_COOKIE|_REQUEST|_SERVER|HTTP|http).*\
117117
require_once[[:space:]]*\(.*\$(_ENV|_GET|_POST|_COOKIE|_REQUEST|_SERVER|HTTP|http).*\)
118118
fopen[[:space:]]*\(.*\$(_ENV|_GET|_POST|_COOKIE|_REQUEST|_SERVER|HTTP|http).*\)
119119
readfile[[:space:]]*\(.*\$(_ENV|_GET|_POST|_COOKIE|_REQUEST|_SERVER|HTTP|http).*\)
120-
file_get_contents[[:space:]]*\(.*\$(_ENV|_GET|_POST|_COOKIE|_REQUEST|_SERVER|HTTP|http).*\)
120+
file_(get|put)_contents[[:space:]]*\(.*\$(_ENV|_GET|_POST|_COOKIE|_REQUEST|_SERVER|HTTP|http).*\)
121121
(is_dir|file_exists|unlink)[[:space:]]*\(\"?\$(_ENV|_GET|_POST|_COOKE|_REQUEST|_SERVER|HTTP|http).*\)
122122
show_source[[:space:]]*\(.*\$(_ENV|_GET|_POST|_COOKIE|_REQUEST|_SERVER|HTTP|http).*\)
123123
preg_replace[[:space:]]*\([\'"](.).*\1[igsu]*e
@@ -238,6 +238,8 @@ px_.*[[:space:]]*\(.*\$.*\)
238238
ovrimos_.*[[:space:]]*\(.*\$.*\)
239239
maxdb_.*[[:space:]]*\(.*\$.*\)
240240
db2_.*[[:space:]]*\(.*\$.*\)
241+
->sqliteCreate(Agregate|Collation|Function)[[:space:]]*\(
242+
->createFunction[[:space:]]*\(
241243
CURLOPT_SSL_VERIFY(HOST|PEER), *([Ff][Aa][Ll][Ss][Ee]|0)
242244
unserialize[[:space:]]*\(.*\$.*
243245
file_exists[[:space:]]*\(\"?\$.*
@@ -248,6 +250,9 @@ filesize[[:space:]]*\(\"?\$.*
248250
file_get_contents[[:space:]]*\(.*\$.*
249251
fopen[[:space:]]*\(.*\$.*
250252
file[[:space:]]*\(.*\$.*
253+
file_(get|put)_contents[[:space:]]*\(.*\$
254+
fread[[:space:]]*\(
255+
fwrite[[:space:]]*\(
251256
scandir[[:space:]]*\(.*
252257
php://stdin
253258
php://stdout

0 commit comments

Comments
 (0)