php后台提权,基于ThinkPHP的2个CMS后台GetShell利用

* 本文作者:Mochazz,本文属FreeBuf原创奖励计划,未经许可禁止转载文章作者:Mochazz

思路作者:szrzvdny

0x00 前言

ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的,由于其简单易用,很多cms都基于该框架改写。然而 Thinkphp在缓存使用却存在缺陷,生成缓存时,Thinkphp会将数据序列化存进一个php文件,这就产生了很大的安全问题。

0x01 环境搭建

工具

搭建

安装好phpstudy,把jymusic目录下的所有文件及文件夹拷贝到phpstudy的www目录下,浏览器访问http://localhost/install.php,然后配置一下数据库信息即可。

7c151098437ab19c6b6a576e895439ca.png

584879b9ff8ff6c49b6004d23b69e742.png

另外xyhcms安装类似,这里不赘述。

0x02本地后台getshell

Jymusic cms

先看一下管理员登录页面的源代码,看到核心入口为ThinkPHP.php,找到并打开查看

bd93d06e6345eb31b482787211ecb528.png

发现应用缓存目录为Temp文件夹

18c8e74f8c647bedafecafe6409bd00e.png

打开Temp文件夹会发现有很多缓存文件,我们随便打开即可看看,可以发现里面的内容有点像网站配置信息,只不过是序列化后的结果

f9b75e9445a0f891ee88d02689362c61.png

145ecb5f8d39dafde7a0a4b3f3a3d253.png

所以我们在后台的网站设置处插入一句话,就会被ThinkPHP写入缓存文件。而且这个缓存文件的文件名都是固定不变的,这也是导致getshell的原因。

5d1e5bffc201d58a65aca16c136ea07c.png

3194c9ec0d4d2de4ca4c7f8d3e4e25e6.png

c77252ff6292cf943b5d4ff1912a600b.png

成功插入后,我们来执行一下phpinfo()函数看看,菜刀也能成功连接

d7e48a4149e743680249da9c2e9f3e4a.png

731b349a4cabcca6ace022271e8b3260.png

f906f79697426222fcf8680946da7832.png

4b5f3620ac945aaeef770e89d0e683cd.png

xyhcms

xyhcms和Jymusic cms一样使用了ThinkPHP框架,这里不赘述,直接给出缓存文件的位置

ee74fd710c7f26492318edcbd2b9c014.png

d9ce3b4cc31d5a8d92727652e18c355e.png

xyhcms其实还有一个漏洞,在模板管理处可以添加一个php后缀的模板,文件内容也未做任何检测过滤。下面是成功getshell过程

42ff484d5167bd5f82153f18f36d3bc6.png

2affe7cf0e6c1b99df7f3d5d0a2522b6.png

0x03总结

其实现在很多小型网站都是基于ThinkPHP框架开发的,很多都存在这种问题。当你找不到上传点的时候,可以试试这种方法。当然,肯定有人会说,这个要后台登录才能利用,你只是在本地复现,都没实战过,说个锤子。其实,我还真的实战过,只是不方便贴图,使用弱口令做密码还是挺多的,所以锤子未必不可用。还有,有的网站,虽然说你用很简单的方法getshell,但是其实可以研究的东西还有很多,比如你getshell之后发现权限不够,那就可以试试提权,例如用udf提权、使用mysql远程连接结合sqlmap提权等等,虽然有些方法很早就有了,但是并不是每个人都会,而且一些老的思路还有可能启发你新的思考,继续加油吧!

参考文章:

* 本文作者:Mochazz,本文属FreeBuf原创奖励计划,未经许可禁止转载

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值