一句话木马简介
先看看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