【漏洞预警】ThinkPHP5 任意命令执行

2019-01-17  本文已影响0人  odaycaogen

此故事灵感源于seebug,如有雷同,纯属盗版

漏洞描述

2019年1月11日,Thinkphp5发布安全更新,修复了一个可能的GetShell安全漏洞。

http://www.thinkphp.cn/topic/60992.html

官方刚更新,高能的白帽子大军已经开始蠢蠢欲动了,开始了各种分析,尝试漏洞复现

漏洞分析

昨天我也研究了下代码,尝试复现,于是渣渣的我么能成功 于是乎分析什么的就看大佬如何挥舞了

参考文献

https://paper.seebug.org/787/

https://bbs.ichunqiu.com/thread-49591-1-1.html

https://bbs.ichunqiu.com/thread-49557-1-1.html

漏洞测试

c=system&f=ls&_method=filter

_method=construct&filter[]=system&method=get&server[REQUEST_METHOD]=ls

打了个残包立马关闭了 就点到为止

漏洞修复

升级到5.0.24版本

通过修改以下代码来缓解漏洞:

编辑 library/think/Request.php 文件, 查找:

$this->method = strtoupper($_POST[Config::get('var_method')]);

$this->{$this->method}($_POST);

修改

 $method = strtoupper($_POST[Config::get('var_method')]);

if (in_array($method, ['GET', 'POST', 'DELETE', 'PUT', 'PATCH'])) {

          $this->method = $method;

          $this->{$this->method}($_POST);

 }

else {

          $this->method = 'POST';

}

unset($_POST[Config::get('var_method')]);

只允许五种方法,保证变量在可控范围内

注:请业务侧注意测试升级后网站功能是否正常

总结:此漏洞继续升温,大佬真优秀

明年尽量适当的避开thinkphp

文章转载自 123``blog

上一篇 下一篇

猜你喜欢

热点阅读