前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >thinkphp网站最新版本6.X漏洞修复解决办法

thinkphp网站最新版本6.X漏洞修复解决办法

原创
作者头像
技术分享达人
修改2020-02-10 17:04:13
1.2K0
修改2020-02-10 17:04:13
举报
文章被收录于专栏:网站漏洞修补网站漏洞修补

大年初五,根据我们SINE安全的网站安全监测平台发现,thinkphp官方6.0版本被爆出高危的网站代码漏洞,该漏洞可导致网站被植入网站木马后门文件也叫webshell,具体产生的原因是session ID参数值这里并未对其做详细的安全过滤与效验,导致可以远程修改POST数据包将session的值改为恶意的后门代码,发送到服务器后端并生成PHP文件直接生成,可导致网站被攻击,服务器被入侵,关于该thinkphp漏洞的详情,我们SINE安全来跟大家分析一下。

thinkphp是国内用的比较多的一套开源系统,采用的是php+mysql架构开发,基于该框架的开发较容易与维护,深受很多站长以及企业的青睐,2018-2019年thinkphp的漏洞就层出不穷,像之前的3.23版本,ThinkPHP 5.0缓存漏洞、ThinkPHP 5.0.10、ThinkPHP5.0.12、ThinkPHP5.0.13、ThinkPHP5.0.23、thinkphp 5.0.22版本都存在这漏洞。

目前的新版本6.0存在着session任意文件上传漏洞,我们SINE安全工程师来进行详细的安全分析与代码的安全检测,再index控制器里我们发现可以写入session来进行控制代码,首先我们看下代码:如下图所示

以上代码是用来获取name的参数值并将值里的内容写到session中去,我们来本地搭建一套TP6.0版本的环境,来测试一下生成的session文件会到哪里去。http://测试网址/tp6/public/index.php/index/testsession?name=<?php%20phpinfo();?>当get 访问该页面的时候就会在网站根目录下的runtime文件夹里的session目录下生成一个PHP文件,我们可以看得到。那到底是那段代码导致可以写入文件名的呢?我们仔细看下TP框架里的store.php代码,追踪到253到270行这里,调用了一个参数来进行写入文件的操作,writefile($filename,$data)我们来追踪下这个函数接下来使用到是哪里的值,看下图:

原来是追踪到了sessionID值里去了,也就是POST数据包里的phpsessid,导致该值可以在远程进行伪造与篡改,漏洞利用截图:

经过我们SINE安全的网站安全测试发现,thinkphp的漏洞利用条件是服务器开启session功能,默认代码是不开启的,有些第三方开发公司在给客户网站以及平台开发的时候会用到session功能来控制用户的登录状态以及权限所属判断,可导致网站被攻击,被篡改,数据库内容被修改等攻击情况的发生,在这里我们建议网站的运营者对该代码漏洞进行修复,对session的判断以及写入做拦截与效验,不允许直接.php文件的session值写入,如果您对代码不是太懂的话也可以找专业的网站安全公司来帮您修复网站漏洞

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档