IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 记录一期Thinkphp5 WebShell木马渗透的经历 加修复建议 -> 正文阅读

[PHP知识库]记录一期Thinkphp5 WebShell木马渗透的经历 加修复建议

ThinkPHP的宗旨是简化开发、提高效率、易于扩展,其在对数据库的支持方面已经包括MySQL、MSSQL、Sqlite、PgSQL、 Oracle,以及PDO的支持。ThinkPHP有着丰富的文档和示例,框架的兼容性较强,但是其功能有限,因此更适合用于中小项目的开发。

但是漏洞也层出不穷,有一天发现自己的的小程序突然打不开了,
What ??? 小小的网站也被墙了?
之前抱着一种心态 想着 这么小的网站谁想搞你 然后对网络安全方面视而不理,结果有一天 被啪啪打脸!!
请添加图片描述

当时很惊慌,未了解网络渗透方面的知识的无束手无策 但是没办法 哪里跌倒哪里爬起!!!
然后开始分析木马是怎么上传的!!!

PHP木马上传 网上一堆文章对其进行描述,本人在开发项目的时候也知道有这么一回事但是抱着一种态度 小破站没人会攻击你所以就没太注意。
在这里插入图片描述
简单来说就是通过漏洞将PHP文件通过漏洞上传到你的服务器中 然后进行一些非法操作。同时还是 XSS SQL注入等方法进行攻击。
下面我来分析一波木马被上传的经历。

有一天 网页首页被占了 那时候很郁闷 到底发生了啥 然后进入服务器看 发现 ThinkPHP 首页的 Index.php 文件被篡改成了 一个Html文件 导致后台接口打不开同时里面内容还有一些脚本。
在这里插入图片描述
同时发现多了几个文件
在这里插入图片描述

在这里插入图片描述
其中gsl.php 文件内容如下, 通过百度了解到 该文件是一个叫做哥斯拉的木马 通过
file_get_contents(“php://input”);这句话接收上传经过加密的PHP脚本文件,然后通过encode( D , D, D,K)方法进行解密 最终通过 eval($payload);这个方法运行脚本。
在这里插入图片描述

为什么eval($payload);
可以运行脚本呢??

在这里插入图片描述
通过查资料可以发现 eval 函数可以把里面参数的内容 当做PHP脚本来执行 这样的话 问题就大了 如果木马被上传就完蛋 别人想干嘛就干嘛了。
同时
发现了 robots.php文件 里面的内容如下
在这里插入图片描述
发现了一个Url 我们打开试一下
在这里插入图片描述

在这里插入图片描述访问这个Url发现 就是一堆加密过的木马文件 ,出于好奇 我将它复制到了服务器并且修改了相关内容。让其打印该木马内容
在这里插入图片描述
修改 eval 方法为 echo 将字符串打印出来
然后
打开 发现以下内容

在这里插入图片描述
在这里插入图片描述
但是这些都是打印出来的结果 ,看不到网站的真实内容 。 然后经过确保这个文件无其他后门后我尝试将其界面改成 PHP文件试试。
然后打开界面如下 好家伙 还
过安全狗、云锁、阿里云、360、护卫神、D盾、百度云、各种杀软!
这就是木马的WebShell 但是这里有密码 然后我分析了一下代码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
发现这个代码就是验证密码的逻辑 然后我将逻辑改了一下
在这里插入图片描述

去除MD5加密后将上面的 $password;输入 然后页面就可以打开了
在这里插入图片描述
发现该木马的功能还真不少 可以下载文件 上传文件 该文件等一系列操作 还可以执行SQL语句 这一波操作 项目里面的源码全都是裸奔了 想干嘛就干嘛 。。。。

发现该脚本后 我立马搜索资料 对漏洞进行修复,最后发现实 ThinkPhP5的一个重大漏洞 遇到这个问题的人不止我一个。

下面是修复的过程
受影响的版本包括5.0和5.1版本
1、thinkphp\library\think\App.php 358行左右 module 方法中
像如题所示添加该代码 这也是TP官方建议的修改方法
在这里插入图片描述
新增代码如下

if (!preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) {
            throw new HttpException(404, 'controller not exists:' . $controller);
        }

2、thinkphp\library\think\Request.php

将public function method($method = false)方法更改在这里插入图片描述

改成如下
在这里插入图片描述
完整代码如下

public function method($method = false)
    {
        if (true === $method) {
            // 获取原始请求类型
            return IS_CLI ? 'GET' : (isset($this->server['REQUEST_METHOD']) ? $this->server['REQUEST_METHOD'] : $_SERVER['REQUEST_METHOD']);
        } elseif (!$this->method) {
            if (isset($_POST[Config::get('var_method')])) {
                // $this->method = strtoupper($_POST[Config::get('var_method')]);
                // $this->{$this->method}($_POST);
                $method = strtoupper($_POST[Config::get('var_method')]);
                if (in_array($method, ['GET', 'POST', 'DELETE', 'PUT', 'PATCH'])) {
                    $this->method = $method;    
                    $this->{$this->method}($_POST);
                } else { 
                    $this->method = 'POST';
                }
                unset($_POST[Config::get('var_method')]);
            } elseif (isset($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'])) {
                $this->method = strtoupper($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE']);
            } else {
                $this->method = IS_CLI ? 'GET' : (isset($this->server['REQUEST_METHOD']) ? $this->server['REQUEST_METHOD'] : $_SERVER['REQUEST_METHOD']);
            }
        }
        return $this->method;
    }

同时后端代码要严格的判断文件上传的 内容是否合法 禁止上传非法脚本文件。要不然容易被黑!
经过一波教育之后 突然觉得 网络安全与每一位开发者息息相关 切莫因为网站的大小而忽略了对项目的安全防护 ,上面的只是一次 被getShell的经历 网络渗透的方法还有很多 。做运维和开发一定要了解基本的网络安全知识 要不然不是因为有灵魂的开发者!
同时需要这些木马脚本进行分析学习的可以私聊我 但是切记不能做一下非法的事情。维护网路安全环境 人人有责

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-12-28 22:41:54  更:2021-12-28 22:42:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 20:20:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计