记一次密码重置到后台GetShell
字数 1351 2025-08-06 08:35:09

从密码重置到后台GetShell的渗透测试实战教学

1. 初始信息收集与登录尝试

  1. 初始访问方式

    • 使用IP地址直接访问目标网站
    • 发现登录页面后点击登录按钮
  2. 域名解析问题

    • 点击登录后出现"Unknown host"错误
    • 分析原因:登录按钮使用域名访问,而当前环境无法解析该域名
    • 解决方案:将域名替换为IP地址+后台路径直接访问

2. 密码重置漏洞利用

  1. 发现密码重置功能

    • 在成功访问的后台页面发现"找回密码"功能
    • 测试admin账号的密码重置流程
  2. 安全问题破解

    • 发现admin账号的密码重置问题为"1+1=?"
    • 尝试简单答案"2"未成功
    • 使用Burp Suite进行暴力破解:
      • 首先尝试数字1-1111
      • 扩展尝试11111、111111等更长数字组合
  3. 用户名枚举

    • 当直接破解admin失败后,转向枚举其他用户
    • 成功枚举出两个有效账号:cs和test
  4. test账号利用

    • 选择test账号进行密码重置
    • 猜测其安全问题答案为"111"(基于该账号可能是测试账号的假设)
    • 成功重置test账号密码

3. 后台功能探索与权限提升

  1. 初始权限限制

    • 使用test账号登录后尝试文件上传功能
    • 发现"上传资源"和"上传头像"功能均无权限或无效
  2. 功能分析

    • 后台共有8个功能,仅"微课"功能可正常使用
    • 检查"上传附件"按钮:
      • 发现点击无反应
      • 使用浏览器开发者工具(F12)检查是否被注释
  3. 其他功能测试

    • 尝试访问其他功能均失败
  4. 密码重置参数分析

    • 在密码重置功能中发现userid参数
    • 在前台"活跃用户"处确认自己的id与密码重置处的userid一致
    • 尝试修改其他账号密码:
      • 先测试修改pwd账号密码
      • 使用Burp暴力破解,发现原密码为"!@#$%^"时重置成功
      • 成功登录pwd账号
  5. 管理员权限获取

    • 将userid替换为管理员id
    • 成功重置并登录管理员账号
    • 发现管理员权限与test账号权限基本相同(关键发现)

4. 文件上传GetShell

  1. 隐藏上传点发现

    • 在"个人中心"页面查看源代码
    • 发现一个隐藏的文件上传URL
  2. 文件上传测试

    • 直接访问该URL确认是文件上传接口
    • 上传策略:
      • 先上传合法jpg文件
      • 直接修改文件后缀为jsp进行绕过
    • 成功上传Webshell
  3. Webshell访问

    • 直接访问上传的jsp文件获取系统权限

5. 渗透测试关键总结

  1. 最小影响原则

    • 实际测试发现无需获取管理员权限(test账号已足够)
    • 应在动静最小的情况下获取系统权限
  2. 细心观察的重要性

    • 隐藏上传URL的发现依赖于对页面源代码的仔细检查
    • 密码重置流程的每个参数都值得深入分析
  3. 测试流程优化建议

    • 优先尝试低权限账号的利用
    • 不要忽视看似无效的功能按钮(检查源代码)
    • 所有用户输入参数都应测试是否存在IDOR等漏洞
  4. 防御建议

    • 密码重置问题应设置足够复杂度
    • 实现严格的用户枚举防护
    • 文件上传功能应进行多重验证:
      • 文件内容检测
      • 后缀名白名单
      • 随机化上传路径
    • 隐藏接口不等于安全接口,所有功能都应进行权限验证

6. 技术要点备忘

  1. 密码重置漏洞利用链

    弱密码问题 → 用户名枚举 → IDOR漏洞 → 权限提升
    
  2. 文件上传绕过技巧

    合法文件上传 → 修改请求参数 → 扩展名绕过
    
  3. 隐藏接口发现方法

    前端代码审计 → 敏感关键词搜索(upload/file等) → 直接访问测试
    
  4. 权限提升检查点

    • 所有接收用户ID的参数
    • 前端隐藏的API接口
    • 看似无效但实际可用的功能按钮
从密码重置到后台GetShell的渗透测试实战教学 1. 初始信息收集与登录尝试 初始访问方式 : 使用IP地址直接访问目标网站 发现登录页面后点击登录按钮 域名解析问题 : 点击登录后出现"Unknown host"错误 分析原因:登录按钮使用域名访问,而当前环境无法解析该域名 解决方案:将域名替换为IP地址+后台路径直接访问 2. 密码重置漏洞利用 发现密码重置功能 : 在成功访问的后台页面发现"找回密码"功能 测试admin账号的密码重置流程 安全问题破解 : 发现admin账号的密码重置问题为"1+1=?" 尝试简单答案"2"未成功 使用Burp Suite进行暴力破解: 首先尝试数字1-1111 扩展尝试11111、111111等更长数字组合 用户名枚举 : 当直接破解admin失败后,转向枚举其他用户 成功枚举出两个有效账号:cs和test test账号利用 : 选择test账号进行密码重置 猜测其安全问题答案为"111"(基于该账号可能是测试账号的假设) 成功重置test账号密码 3. 后台功能探索与权限提升 初始权限限制 : 使用test账号登录后尝试文件上传功能 发现"上传资源"和"上传头像"功能均无权限或无效 功能分析 : 后台共有8个功能,仅"微课"功能可正常使用 检查"上传附件"按钮: 发现点击无反应 使用浏览器开发者工具(F12)检查是否被注释 其他功能测试 : 尝试访问其他功能均失败 密码重置参数分析 : 在密码重置功能中发现userid参数 在前台"活跃用户"处确认自己的id与密码重置处的userid一致 尝试修改其他账号密码: 先测试修改pwd账号密码 使用Burp暴力破解,发现原密码为" !@#$%^"时重置成功 成功登录pwd账号 管理员权限获取 : 将userid替换为管理员id 成功重置并登录管理员账号 发现管理员权限与test账号权限基本相同(关键发现) 4. 文件上传GetShell 隐藏上传点发现 : 在"个人中心"页面查看源代码 发现一个隐藏的文件上传URL 文件上传测试 : 直接访问该URL确认是文件上传接口 上传策略: 先上传合法jpg文件 直接修改文件后缀为jsp进行绕过 成功上传Webshell Webshell访问 : 直接访问上传的jsp文件获取系统权限 5. 渗透测试关键总结 最小影响原则 : 实际测试发现无需获取管理员权限(test账号已足够) 应在动静最小的情况下获取系统权限 细心观察的重要性 : 隐藏上传URL的发现依赖于对页面源代码的仔细检查 密码重置流程的每个参数都值得深入分析 测试流程优化建议 : 优先尝试低权限账号的利用 不要忽视看似无效的功能按钮(检查源代码) 所有用户输入参数都应测试是否存在IDOR等漏洞 防御建议 : 密码重置问题应设置足够复杂度 实现严格的用户枚举防护 文件上传功能应进行多重验证: 文件内容检测 后缀名白名单 随机化上传路径 隐藏接口不等于安全接口,所有功能都应进行权限验证 6. 技术要点备忘 密码重置漏洞利用链 : 文件上传绕过技巧 : 隐藏接口发现方法 : 权限提升检查点 : 所有接收用户ID的参数 前端隐藏的API接口 看似无效但实际可用的功能按钮