summaryrefslogtreecommitdiff
path: root/src/tests
diff options
context:
space:
mode:
authorjvoisin2018-01-04 15:59:59 +0100
committerGitHub2018-01-04 15:59:59 +0100
commit3b113be573cdbca20ce9ec9c0a6efb25ccf51db5 (patch)
tree5fabbd1da7cd740f26354ffbd2234eba71ffdead /src/tests
parent84e423300c440e96c34ada2620e0f78f827592e8 (diff)
Eval blacklist
Add support for eval filtering, only blacklist for now
Diffstat (limited to 'src/tests')
-rw-r--r--src/tests/config/eval_backlist.ini1
-rw-r--r--src/tests/config/eval_backlist_list.ini1
-rw-r--r--src/tests/config/eval_backlist_simulation.ini1
-rw-r--r--src/tests/eval_backlist.phpt16
-rw-r--r--src/tests/eval_backlist_list.phpt16
-rw-r--r--src/tests/eval_backlist_simulation.phpt17
-rw-r--r--src/tests/nested_eval_blacklist.phpt28
7 files changed, 80 insertions, 0 deletions
diff --git a/src/tests/config/eval_backlist.ini b/src/tests/config/eval_backlist.ini
new file mode 100644
index 0000000..1e34b5b
--- /dev/null
+++ b/src/tests/config/eval_backlist.ini
@@ -0,0 +1 @@
sp.eval_filter.blacklist("strlen");
diff --git a/src/tests/config/eval_backlist_list.ini b/src/tests/config/eval_backlist_list.ini
new file mode 100644
index 0000000..da5650d
--- /dev/null
+++ b/src/tests/config/eval_backlist_list.ini
@@ -0,0 +1 @@
sp.eval_filter.blacklist("strcmp,strlen");
diff --git a/src/tests/config/eval_backlist_simulation.ini b/src/tests/config/eval_backlist_simulation.ini
new file mode 100644
index 0000000..fafebd5
--- /dev/null
+++ b/src/tests/config/eval_backlist_simulation.ini
@@ -0,0 +1 @@
sp.eval_filter.blacklist("strlen").simulation();
diff --git a/src/tests/eval_backlist.phpt b/src/tests/eval_backlist.phpt
new file mode 100644
index 0000000..20b2c92
--- /dev/null
+++ b/src/tests/eval_backlist.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Eval blacklist
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) die "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/eval_backlist.ini
7--FILE--
8<?php
9$a = strlen("1337 1337 1337");
10echo "Outside of eval: $a\n";
11eval('$a = strlen("1234");');
12echo "After eval: $a\n";
13?>
14--EXPECTF--
15Outside of eval: 14
16[snuffleupagus][0.0.0.0][eval][drop] A call to strlen was tried in eval, in%atests/eval_backlist.php:1, dropping it.
diff --git a/src/tests/eval_backlist_list.phpt b/src/tests/eval_backlist_list.phpt
new file mode 100644
index 0000000..b1c7bfd
--- /dev/null
+++ b/src/tests/eval_backlist_list.phpt
@@ -0,0 +1,16 @@
1--TEST--
2Eval blacklist - with a list of functions
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) die "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/eval_backlist_list.ini
7--FILE--
8<?php
9$a = strlen("1337 1337 1337");
10echo "Outside of eval: $a\n";
11eval('$a = strlen("1234");');
12echo "After eval: $a\n";
13?>
14--EXPECTF--
15Outside of eval: 14
16[snuffleupagus][0.0.0.0][eval][drop] A call to strlen was tried in eval, in %a/tests/eval_backlist_list.php:1, dropping it.
diff --git a/src/tests/eval_backlist_simulation.phpt b/src/tests/eval_backlist_simulation.phpt
new file mode 100644
index 0000000..ddeae60
--- /dev/null
+++ b/src/tests/eval_backlist_simulation.phpt
@@ -0,0 +1,17 @@
1--TEST--
2Eval blacklist
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) die "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/eval_backlist_simulation.ini
7--FILE--
8<?php
9$a = strlen("1337 1337 1337");
10echo "Outside of eval: $a\n";
11eval('$a = strlen("1234");');
12echo "After eval: $a\n";
13?>
14--EXPECTF--
15Outside of eval: 14
16[snuffleupagus][0.0.0.0][eval][simulation] A call to strlen was tried in eval, in %a/tests/eval_backlist_simulation.php:1, dropping it.
17After eval: 4
diff --git a/src/tests/nested_eval_blacklist.phpt b/src/tests/nested_eval_blacklist.phpt
new file mode 100644
index 0000000..b12bf93
--- /dev/null
+++ b/src/tests/nested_eval_blacklist.phpt
@@ -0,0 +1,28 @@
1--TEST--
2Eval blacklist - nested eval
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) die "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/eval_backlist.ini
7--FILE--
8<?php
9$a = strlen("1337 1337 1337");
10echo "Outside of eval: $a\n";
11eval(
12 "echo 'Inception lvl 1...\n';
13 eval(
14 'echo \"Inception lvl 2...\n\";
15 eval(
16 \"echo \'Inception lvl 3...\n\';
17 strlen(\'Limbo!\');
18 \");
19 ');
20");
21echo "After eval: $a\n";
22?>
23--EXPECTF--
24Outside of eval: 14
25Inception lvl 1...
26Inception lvl 2...
27Inception lvl 3...
28[snuffleupagus][0.0.0.0][eval][drop] A call to strlen was tried in eval, in %a/tests/nested_eval_blacklist.php(5) : eval()'d code(4) : eval()'d code:3, dropping it.