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

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

phpmianshi2年前 (2018-12-10)PHP282

概况

近日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面试资料网发布,如需转载请注明出处。
分享给朋友:

相关文章

php-fpm的优雅重启关闭

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

php5数组与php7数组区别

php5数组与php7数组区别

PHP5数组结构体typedef struct _hashtable {       uint n...

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

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

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

php-fpm backlog参数优化

php-fpm backlog参数优化

一、问题分析       1、分析php-fpm.slow.log发现没有执行慢的地方,然后把目光放到了nginx 与php建立连接的阶段上,使用tcpdump...

PHP中命名空间概述

(PHP 5 >= 5.3.0, PHP 7)什么是命名空间?从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的...

PHP中max_execution_time设置不生效

问题描述:max_execution_time设置了1秒,但是发现超过3秒的脚本还是跑。于是深入研究下max_execution_time不生效的原因。官网描述:https://www.php.net...

发表评论

访客

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