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

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

phpmianshi3年前 (2018-12-10)php764

概况

近日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-fpm进程数优化

CGI:是 Web Server 与 Web Application 之间数据交换的一种协议。CGI(Common Gateway Interface)全称是“通用网关接口”,WEB 服务器与PHP应...

php中容易出错的小案例

sprintf用到sprintf 的时候 如果有传递的变量  如果变量可能出现 % ,则容易出错<?php $content = "%')(...

php5数组与php7数组区别

php5数组与php7数组区别

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

PHP数组实际占用内存大小的分析

1.数组正常的赋值是不会发生内存改变的,但是当赋值的新数组发生改动的时候,php就会新开辟内存给新的数组,这里会造成无谓的内存消耗。最好是不要直接这样赋值,如果非赋值不可的话,记得加上‘&’符...

DAL、DAO、ORM、Active Record详解

模型 Model模型是MVC中的概念,指的是读取数据和改变数据的操作(业务逻辑)。一开始我们直接把和数据库相关的代码放在模型里(sql直接写在代码中),这样就会导致以后的维护相当麻烦。业务逻辑的修改都...

php8世界上最好的语言新版本特性

php8世界上最好的语言新版本特性

本文只会讲述新特性的一些关键点,更详细的介绍请认真阅读官方文档。01 Union Types(联合类型)说明一点,从 PHP 7 开始,支持下面这样的语法:function sum(int&...

发表评论

访客

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