当前位置:首页 > PHP > 正文内容

tp5.0.x 5.1.x 最新getshell漏洞

phpmianshi2年前 (2018-12-10)PHP162

概况

近日thinkphp团队发布了版本更新:https://blog.thinkphp.cn/869075 ,其中修复了一处getshell漏洞。

影响范围

5.1.x < 5.1.31
5.0.x<= 5.0.23


实战演练


比如5.0.7漏洞利用方法:


https://phpmianshi.com/?s=index/\think\app/invokefunction&function=phpinfo&vars[0]=1

可以看到phpinfo信息


修复方法


5.0.x版本修复:新增红色代码:
// 获取控制器名
vi thinkphp/library/think/App.php

$controller = strip_tags($result[1] ?: $config['default_controller']);
if (!preg_match('/^[A-Za-z][\w\.]*$/', $controller)) {
throw new HttpException(404, 'controller not exists:' . $controller);
}
$controller = $convert ? strtolower($controller) : $controller;

修复后看不到phpinfo信息

5.1.x版本修复:
vi thinkphp/library/think/route/dispatch/Module.php
找到 // 获取控制器名
// 获取控制器名
$controller       = strip_tags($result[1] ?: $this->rule->getConfig('default_controller'));
if (!preg_match('/^[A-Za-z][\w\.]*$/', $controller)) {
throw new HttpException(404, 'controller not exists:' . $controller);
}

官方现已推出补丁 建议开发者进行修复,但是下面这2个补丁不支持分层控制器,最好用我上面的或者升级最新版本



版权声明:本文由PHP面试资料网发布,如需转载请注明出处。
分享给朋友:

相关文章

laravel中设置数据库读写分离后强制使用主库查询

背景在项目比较火爆,QPS比较高时,可以设置读写分离来扩容数据库,减少数据库的压力,但是有些业务可能对数据一致性要求比较高,比如支付。当支付成功时,再去查询订单状态时,如果查询走的从库,如果出现主从延...

记一次tp3.2.3因fetch导致的漏洞处理过程

记一次tp3.2.3因fetch导致的漏洞处理过程

问题描述:最近发现百度收录大幅度下降,并出现大量5xx错误,有些收录页面直接跳转到其他网站,如下图:问题追查1.根据以往经验首先怀疑网站被植入或者挂马      &nbs...

php-fpm的优雅重启关闭

PHP 5.3.3 下的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,需要使用信号控制:m...

PHP中const和static的区别和联系

1.const是类中的常量,类外用define定义常量2.const只可以修饰类的属性,不能修饰类的方法,static可以修饰属性,也可以修饰方法3.const和static都属于类本身,而不属于ne...

PHP红包分配算法

<?php /**  * User: phpmianshi.com   * Date: 2020/3/31 &nbs...

通过 PHP OPcache 让你的 Laravel 应用运行速度飞起来

Laravel 优化介绍:https://segmentfault.com/a/11900000115690121.缓存配置信息 php artisan config:cache2.缓存路由信息 ph...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。