eval 和assert 通过调用system执行命令

eval

if(isset($_GET[‘cmd’])){
$cmd=$_GET[‘cmd’];
eval(“\$cmd=$cmd”);
echo “success”;
}else{
echo “fail”;
}

assert

if(isset($_GET[‘cmd’])){
$cmd=$_GET[‘cmd’];
assert(“\$cmd=$cmd”);
echo “success”;
}else{
echo “fail”;
}

回调函数

call_user_func($_GET[‘a’],$b);
call_user_func_array

动态执行

$_GET‘a’; 接受get的a作为一个函数,b作为一个参数

正则

//1.普通字符作为原子
$pattern=’/abc/‘;
$str=’abcssssabbbccccbcabc’;
preg_match_all($pattern,$str,$res);
var_dump($res);
//2.特色符合做原子
$pattern=’/[php]/‘;
$str=’[php]12456’;
preg_match_all($pattern,$str,$res);
var_dump($res);
//3.通用字符作原子
$pattern1=’/\d/‘; //0-9
$pattern2=’/\D/‘; //a-zA-Z
$str=’12345667aasgsdhdjAAFSEDGSHZ’;
preg_match_all($pattern1,$str,$res);
var_dump($res);
//.自定义原子
$pattern=’/[jsp]11/‘;
图片.png

命令执行

常见函数
system
exec //需要echo只显示一行
passthru
shell_exec //需要echo
过滤函数
escapeshellcmd()
escapeshellarg()