PHP一句话木马的防范

一句话木马简介

先看看PHP一句话木马长啥样:

<?php eval($_POST['ant']); ?>

这就是PHP一句话木马的全部内容,由于代码只有一句话,所以被称为“一句话”木马。

一句话木马利用

如果网站内被上传了php一句话木马文件,那么就可以通过一些黑客工具拿到服务器的shell管理权限。下面以“中国蚁剑AntSword”这个工具为例进行演示。

上传一句话木马

上传一句话木马文件到网站任意目录,例如我上传到本地的网站根目录下。该文件可以通过http://127.0.0.1/ant.php访问。

下载中国蚁剑

下载地址:https://github.com/AntSwordProject/AntSword-Loader

首次打开时,界面如下图所示:

连接一句话木马

点击初始化按钮,选择一个空目录作为蚁剑的工作目录,加载器会自动下载源代码。待提示初始化完毕时,重新打开蚁剑加载器,即可看到蚁剑的主界面。如果显示解压出错,手动打开工作目录,手动将antSword-master.zip文件解压,然后重新打开蚁剑,选择工作目录时,选择antSword-master.zip文件解压的目录(即app.js所在的目录)。

打开AntSword,在空白位置单击「鼠标右键」,弹出菜单中选择 「添加数据」,在添加数据界面中,添加连接信息。

可以看到通过蚁剑这款工具已经连上了本地服务器,可以进行文件管理等操作了。

防范措施

1.限制文件上传类型。禁止用户上传php文件。
2.禁止上传目录的可执行权限。
如果由于某些漏洞造成黑客上传了一句话木马文件到上传目录,我们只需要设置该目录不可执行php,那么该文件也就是失去了作用。
3.禁用eval函数
eval函数可以将字符串作为程序来执行,是非常危险的函数。只要我们禁用该函数,那么黑客也就无法通过工具来连接该木马文件。由于eval不是普通的函数,无法通过在Php.ini里设置disable_functions来禁用。只能通过安装扩展来禁用。
4.设置单一入口
如今PHP开发都是MVC模式,那么一般都是单入口的,我们只需要设置仅允许index.php这一个文件可以访问即可。如果是apache服务器,仅需要在.htaccess文件中添加如下代码即可:

<Files ~ ".php">
    Order  allow,deny
    Deny  from  all
</Files>
<Files ~ "index.php">
    Order  allow,deny
    allow  from  all
</Files>

安装diseval扩展(禁用eval函数)

地址:https://github.com/mk-j/PHP_diseval_extension

参考:
https://blog.csdn.net/seoyundu/article/details/100598520

发表评论

邮箱地址不会被公开。 必填项已用*标注