巧合的是,我在公司网站上发现了thinkphp命令的远程执行漏洞。从那以后,我一直对这个漏洞着迷。这是为什么?主要原因有2点:第一,如果网站存在漏洞,我们可以运行多个系统命令进行测试和观察,特别是如果有管理员权限,则更方便;两点,只要找到相应版本的thinkphp,开发步骤就比较简单了。 (这个漏洞分析的作者在这里并不是那么难看,主要是为了介绍如何探索这个漏洞以及与作者有关的一些想法!我希望为刚进入安全圈的新人提供新的灵感。
漏洞简介
在2018年12月9日,thinkphp正式启动了一项主要的安全更新,解决了严重的远程命令执行漏洞。此更新主要与安全更新有关。由于结构不能足够检测控制器的名称,因此在未启用强制路由时可能会导致shell出现漏洞。受影响的版本包括5.0(<5.0.23)和5.1(<5.1.31)版本。
漏洞特征
可以说这个功能是大多数thinkphp框架的特征。在网站的URL中输入不存在的路由后,该页面将报告错误,显示网站的配置信息和thinkphp的版本,如图所示:
输入网站上不存在的路由11或某些不存在的文件,例如: 11.php,11.txt。此时,页面将报告错误并抛出异常,如图所示:
此时,我们可以看到网站的机密配置信息,例如网站的路线。当然,我对thinkphp框架版本更感兴趣。如图所示,thinkphp版本清晰可见。如果你看到这个,你可能认识我。然后我干了自己。
漏洞再次发生
笔者认为,要利用此漏洞的方式是比较简单和粗暴。最初,他也试图证明这一点,并没有想到它会成功。
首先打开百度,然后在搜索引擎中输入“thinkphp5.0漏洞”,看到许多大型分析,只需打开一个链接,删除信息负载。 (当然,这paylaod应按照实际情况的微小变化,根据现场观摩几次做出改变。如果更正该网站的漏洞,那么测试将不会成功)。
开始重复循环:
使用远程命令执行系统的功能。
:http://货物载荷xxx.com/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0◆=system&vars[1◆[[]]不难看出当前网站存在并且可以执行系统命令。最后一种测试方法更受欢迎。作者有话要说,你看官方时就可以理解:
以目前的权限是否管理员权限首先来看看,如果是更好,那么你必须想办法增加的权利。 (EMM具有ThinkPHP不应再使用的漏洞。如果这里有个管理员权限,网站管理员应该考虑一下)
然后上传木马短语,链接直升机,基本上这几乎是相同的。 (不仅操作它)
通过相应平台通知相关供应商有关漏洞的信息。 (xx不标准化,坐下来使用)
漏洞分析
这不是原则的分析,但笔者有一个视野和经验浅。
之后我发现,ThinkPHP框架设置,页面有一些消息来源,如下图所示。
然后,指出有效载荷之前构建:http://xxx.com/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0◆=system&varsBacklinks1。
关于强大的搜索功能,谷歌搜索引擎思考,建成声明“ThinkPHP十年磨一剑: inurl这样的index.php”(当然让我感到惊讶)
我看了很多使用框架的网站,并搜查了贝尔的搜索引擎爱眼护眼在设计开发API [V5.0 +赞助了十年高性能帧+7 Niuyun +出版+]“也可以寻找大量的此类网站。
据此,有很多网站使用thinkphp 5.0的版本。管理员可以找到的一些网站已经解决了这个漏洞,但是应该有大量的管理员没有解决它。 (据推测,每个人都会想到这一点,并且会有黑客会使用这种方法批量获取电台)
视图
通过这个版本的thinkphp的漏洞,作者认为它们有很多。
某些cms网站的漏洞删除方法实际上与作者提到thinkphp漏洞的方式一致。有某些方面,例如版本号,网址的组成等。这种通用漏洞在技术使用方面相对较低。例如,作者通过收集信息找到了很多类似的网站。一旦爆发非常危险,许多事件都会解释这个问题。 (此漏洞挖掘是指其他人已经启动的漏洞,而不是利用尚未发现的漏洞)
许多网站管理员(中小型网站)不关心安全性,并等到安全问题爆发。经常有这种漏洞的网站(长期未被纠正的漏洞)通常是中小型网站。当然,最大的网站可能有,但网站较少。人是安全的标准。这句话不是假的。网站的管理是人为的,但安全性和易用性通常是相对的,并且不可能追求过度的安全性。这导致了一些漏洞。即使本网站的管理员可以想到很多问题,他可能会犯一些错误,或者有一天错误地配置或删除库,而不会认为删除库的操作本身不会出现。
上海IT外包服务网 链接:http://www.linemore.com