summaryrefslogtreecommitdiff
path: root/config/default.rules
diff options
context:
space:
mode:
Diffstat (limited to 'config/default.rules')
-rw-r--r--config/default.rules54
1 files changed, 54 insertions, 0 deletions
diff --git a/config/default.rules b/config/default.rules
new file mode 100644
index 0000000..88398c1
--- /dev/null
+++ b/config/default.rules
@@ -0,0 +1,54 @@
1# Harden the `chmod` function
2sp.disable_function.function("chmod").param("mode").value_r("^[0-9]{2}[67]$").drop();
3sp.disable_function.function("chmod").param("mode").value_r("o\\+w$").drop();
4
5# Prevent various `mail`-related vulnerabilities
6sp.disable_function.function("mail").param("additional_parameters").value_r("\\-").drop();
7
8##Prevent various `include`-related vulnerabilities
9sp.disable_function.function_r("^(?:require|include)_once$").value_r("\\.(?:php|php7|inc|tpl)$").allow();
10sp.disable_function.function_r("^require|include$").value_r("\\.(?:php|php7|inc|tpl)$").allow();
11sp.disable_function.function_r("^(?:require|include)_once$").drop();
12sp.disable_function.function_r("^require|include$").drop();
13
14# Prevent `system`-related injections
15sp.disable_function.function("system").param("command").value_r("[$|;&`\\n]").drop();
16sp.disable_function.function("shell_exec").param("command").value_r("[$|;&`\\n]").drop();
17sp.disable_function.function("exec").param("command").value_r("[$|;&`\\n]").drop();
18sp.disable_function.function("proc_open").param("command").value_r("[$|;&`\\n]").drop();
19
20# Prevent runtime modification of interesting things
21sp.disable_function.function("ini_set").param("var_name").value("assert.active").drop();
22sp.disable_function.function("ini_set").param("var_name").value("zend.assertions").drop();
23sp.disable_function.function("ini_set").param("var_name").value("memory_limit").drop();
24sp.disable_function.function("ini_set").param("var_name").value("include_path").drop();
25sp.disable_function.function("ini_set").param("var_name").value("open_basedir").drop();
26
27# Detect some backdoors via environnement recon
28sp.disable_function.function("ini_get").param("var_name").value_r("(?:allow_url_fopen|open_basedir|suhosin)").drop();
29sp.disable_function.function("function_exists").param("function_name").value_r("(?:eval|exec|system)").drop();
30sp.disable_function.function("is_callable").param("var").value_r("(?:eval|exec|system)").drop();
31
32# Ghetto sqli hardening
33sp.disable_function.function_r("mysqli?_query").param("query").value_r("/\\*").drop();
34sp.disable_function.function_r("mysqli?_query").param("query").value_r("--").drop();
35sp.disable_function.function_r("mysqli?_query").param("query").value_r("#").drop();
36sp.disable_function.function_r("mysqli?_query").param("query").value_r(";.*;").drop();
37sp.disable_function.function_r("mysqli?_query").param("query").value_r("benchmark").drop();
38sp.disable_function.function_r("mysqli?_query").param("query").value_r("sleep").drop();
39sp.disable_function.function_r("mysqli?_query").param("query").value_r("information_schema").drop();
40sp.disable_function.function("PDO::query").param("query").value_r("/\\*").drop();
41sp.disable_function.function("PDO::query").param("query").value_r("--").drop();
42sp.disable_function.function("PDO::query").param("query").value_r("#").drop();
43sp.disable_function.function("PDO::query").param("query").value_r(";.*;").drop();
44sp.disable_function.function("PDO::query").param("query").value_r("benchmark\\s*\\(").drop();
45sp.disable_function.function("PDO::query").param("query").value_r("sleep\\s*\\(").drop();
46sp.disable_function.function("PDO::query").param("query").value_r("information_schema").drop();
47
48# Ghetto sqli detection
49sp.disable_function.function_r("mysqli?_query").ret("FALSE").drop();
50sp.disable_function.function_r("PDO::query").ret("FALSE").drop();
51
52#File upload
53sp.disable_function.function("move_uploaded_file").param("destination").value_r("\\.ph").drop();
54sp.disable_function.function("move_uploaded_file").param("destination").value_r("\\.ht").drop();