渗透测试|某单位从敏感三要素泄露到接管管理员的漏洞挖掘之旅
字数 2015 2025-08-30 06:50:11

渗透测试实战:从敏感信息泄露到管理员接管全流程解析

0x1 前言

一、渗透测试背景

  • 项目类型:与市网信办合作的渗透测试服务项目
  • 测试范围:全市多个政企单位和学校的资产
  • 测试特点:资产数量庞大,测试难度相对较低
  • 法律声明:所有测试均获得合法授权,漏洞已全部修复

二、资产整理方法论

  1. 资产收集

    • 接收甲方提供的资产表格(Excel/TXT格式)
    • 常见资产类型:Web应用、APP、小程序
    • 示例TXT资产格式:
      http://example1.com
      https://example2.edu.cn
      192.168.1.100:8080
      
  2. 文档管理

    • 建立统一文件夹结构
    • 分类存放:授权文件、资产清单、漏洞报告模板
    • 按漏洞类型分目录:Web漏洞、APP漏洞、小程序漏洞

0x2 漏洞一:短信轰炸漏洞

一、纵向轰炸(单手机号高频发送)

  1. 漏洞发现

    • 目标:某人力资源管理局微信小程序
    • 测试点:手机验证码登录接口
  2. 绕过技巧

    • 初始限制:60秒内只能发送1次验证码
    • 绕过方法:在手机号后添加特殊字符
      • 有效字符:@、空格、+86、逗号等
      • 示例:
        13888888888@
        13888888888,
        
  3. 自动化利用

    • 使用Burp Suite的Intruder模块
    • 构建Payload集合:多种特殊字符组合
    • 并发请求实现高频轰炸(每分钟可达数十条)

二、横向轰炸(多手机号同时发送)

  1. 绕过技巧

    • 参数构造方式:
      phone=13888888888,13999999999
      phone=13888888888&phone=13999999999
      phone=13888888888,phone=13999999999
      phone=13888888888&13999999999
      
  2. 实际利用

    • 可同时向多个手机号发送相同验证码
    • 危害:知道他人手机号即可获取其验证码
    • 结合信息泄露可越权登录高权限账号

三、漏洞总结

  1. 危害评级标准

    • 企业SRC:通常接收每分钟15/30条以上的案例
    • 政务系统:危害更大,更容易被接收
  2. 防御建议

    • 严格的频率限制(如1分钟1条)
    • 手机号格式严格校验
    • 增加图形验证码或行为验证

0x3 漏洞二:SessionKey三要素泄露

一、未授权登录漏洞

  1. 工具准备

  2. 漏洞利用步骤

    • 抓取微信小程序登录数据包(含session_key、iv、encryptedData)
    • 使用工具解密获取原始手机号
    • 修改数据包中手机号为目标号码(如管理员手机号)
    • 重新加密并替换原始数据包实现未授权登录
  3. 实际案例

    • 目标:某大学校园服务小程序
    • 发现接口泄露教师通讯录(含手机号)
    • 通过替换session_key登录管理员账号

二、弱口令与信息泄露

  1. Web端发现

    • 从小程序Host发现Web管理系统(若依框架)
    • 尝试手机号+常见弱口令(如123456)成功登录
  2. 敏感数据泄露

    • 后台包含全校师生个人信息
    • 包括:身份证号、手机号、学工号等

0x4 漏洞三:JWT攻击

一、密钥爆破攻击

  1. 漏洞发现

    • 目标小程序使用JWT进行身份验证
    • 通过jwt.io解析Token结构:
      {
        "role": "appUser",
        "exp": 1747377338,
        "userId": "xxxxxxxxxxxxxxxxxx",
        "user_key": "xxxxx-xxxx-xxxx-xxxx",
        "username": "1xxxxxxxxx79"
      }
      
  2. 爆破方法

    • 使用自定义脚本爆破JWT密钥
    • 成功爆破出密钥:123456
    • 使用密钥伪造任意用户Token

二、None算法绕过

  1. 攻击工具

  2. 测试方法

    python jwt_tool.py <JWT值> -X a
    
    • 生成4种None算法变体
    • 逐个尝试替换原始Token
  3. 响应分析

    • 401:签名校验失败
    • 200:攻击成功
    • {"error":"alg not allowed"}:需尝试其他攻击方式

0x5 漏洞四:OAuth2.0漏洞

一、漏洞原理

  • 第三方登录缺少二次确认
  • 扫描二维码即可直接绑定账号
  • 可制作钓鱼页面诱导用户扫描

二、实际案例

  1. 漏洞场景

    • 微信公众号绑定功能
    • 宣传性网站登录系统
  2. 利用方法

    • 构造虚假活动页面
    • 诱导用户扫描绑定二维码
    • 获取用户账号控制权

0x6 漏洞五:Jeecg框架漏洞

一、框架简介

  • 基于SpringBoot的低代码开发平台
  • 官网:jeecg.com
  • 常见组件:Online表单、报表设计、流程设计等

二、综合漏洞利用

  1. 利用工具

  2. 接口信息泄露

    • 发现tableName参数
    • FUZZ测试获取敏感表名
    • 示例泄露接口:
      /api/table/list?tableName=sys_user
      
  3. SQL注入漏洞

    • 有效Payload:
      updatexml(1,concat(0x7e,user(),0x7e),1)
      

三、权限提升技巧

  1. 账号注册

    • 利用register接口创建普通账号
  2. 提权操作

    • 查询管理员ID和自身用户ID
    • 使用提权POC:
      POST /jeecg-boot/sys/user/addSysUserRole HTTP/1.1
      {
        "roleId":"管理员角色ID",
        "userIdList":["自己的用户ID"]
      }
      
  3. 常见弱口令

    admin/123456
    jeecg/123456
    

四、其他攻击面

  1. 敏感接口

    /v2/api-docs
    /swagger-ui.html
    /env
    /actuator
    
  2. 特征关键字

    jeecg/
    api/sys/
    sys/user
    

0x7 总结与建议

一、渗透测试经验

  1. 资产庞大时漏洞发现率更高
  2. 框架类系统存在大量已知漏洞
  3. 接口FUZZ是重要突破口

二、防御建议

  1. 基础防护

    • 严格的身份验证机制
    • 合理的权限控制
    • 输入输出过滤
  2. 框架安全

    • 及时更新框架版本
    • 修改默认配置和接口路径
    • 禁用不必要的功能接口
  3. 监控审计

    • 异常请求监控
    • 敏感操作日志记录
    • 定期安全评估

三、学习建议

  1. 漏洞复现:搭建测试环境实践各类漏洞
  2. 工具掌握:熟练使用文中提到的各类工具
  3. 持续学习:关注框架漏洞的最新动态

注:本文所有漏洞均已修复,仅供学习参考。实际测试必须获得合法授权。

渗透测试实战:从敏感信息泄露到管理员接管全流程解析 0x1 前言 一、渗透测试背景 项目类型:与市网信办合作的渗透测试服务项目 测试范围:全市多个政企单位和学校的资产 测试特点:资产数量庞大,测试难度相对较低 法律声明:所有测试均获得合法授权,漏洞已全部修复 二、资产整理方法论 资产收集 : 接收甲方提供的资产表格(Excel/TXT格式) 常见资产类型:Web应用、APP、小程序 示例TXT资产格式: 文档管理 : 建立统一文件夹结构 分类存放:授权文件、资产清单、漏洞报告模板 按漏洞类型分目录:Web漏洞、APP漏洞、小程序漏洞 0x2 漏洞一:短信轰炸漏洞 一、纵向轰炸(单手机号高频发送) 漏洞发现 : 目标:某人力资源管理局微信小程序 测试点:手机验证码登录接口 绕过技巧 : 初始限制:60秒内只能发送1次验证码 绕过方法:在手机号后添加特殊字符 有效字符: @ 、空格、 +86 、逗号等 示例: 自动化利用 : 使用Burp Suite的Intruder模块 构建Payload集合:多种特殊字符组合 并发请求实现高频轰炸(每分钟可达数十条) 二、横向轰炸(多手机号同时发送) 绕过技巧 : 参数构造方式: 实际利用 : 可同时向多个手机号发送相同验证码 危害:知道他人手机号即可获取其验证码 结合信息泄露可越权登录高权限账号 三、漏洞总结 危害评级标准 : 企业SRC:通常接收每分钟15/30条以上的案例 政务系统:危害更大,更容易被接收 防御建议 : 严格的频率限制(如1分钟1条) 手机号格式严格校验 增加图形验证码或行为验证 0x3 漏洞二:SessionKey三要素泄露 一、未授权登录漏洞 工具准备 : 解密工具: wx_ sessionkey_ decrypt BurpSuite插件: BurpAppletPentester 漏洞利用步骤 : 抓取微信小程序登录数据包(含session_ key、iv、encryptedData) 使用工具解密获取原始手机号 修改数据包中手机号为目标号码(如管理员手机号) 重新加密并替换原始数据包实现未授权登录 实际案例 : 目标:某大学校园服务小程序 发现接口泄露教师通讯录(含手机号) 通过替换session_ key登录管理员账号 二、弱口令与信息泄露 Web端发现 : 从小程序Host发现Web管理系统(若依框架) 尝试手机号+常见弱口令(如123456)成功登录 敏感数据泄露 : 后台包含全校师生个人信息 包括:身份证号、手机号、学工号等 0x4 漏洞三:JWT攻击 一、密钥爆破攻击 漏洞发现 : 目标小程序使用JWT进行身份验证 通过 jwt.io 解析Token结构: 爆破方法 : 使用自定义脚本爆破JWT密钥 成功爆破出密钥: 123456 使用密钥伪造任意用户Token 二、None算法绕过 攻击工具 : jwt_ tool 测试方法 : 生成4种None算法变体 逐个尝试替换原始Token 响应分析 : 401:签名校验失败 200:攻击成功 {"error":"alg not allowed"}:需尝试其他攻击方式 0x5 漏洞四:OAuth2.0漏洞 一、漏洞原理 第三方登录缺少二次确认 扫描二维码即可直接绑定账号 可制作钓鱼页面诱导用户扫描 二、实际案例 漏洞场景 : 微信公众号绑定功能 宣传性网站登录系统 利用方法 : 构造虚假活动页面 诱导用户扫描绑定二维码 获取用户账号控制权 0x6 漏洞五:Jeecg框架漏洞 一、框架简介 基于SpringBoot的低代码开发平台 官网: jeecg.com 常见组件:Online表单、报表设计、流程设计等 二、综合漏洞利用 利用工具 : jeecg漏洞利用工具 GUI界面,集成多个历史漏洞 接口信息泄露 : 发现 tableName 参数 FUZZ测试获取敏感表名 示例泄露接口: SQL注入漏洞 : 有效Payload: 三、权限提升技巧 账号注册 : 利用 register 接口创建普通账号 提权操作 : 查询管理员ID和自身用户ID 使用提权POC: 常见弱口令 : 四、其他攻击面 敏感接口 : 特征关键字 : 0x7 总结与建议 一、渗透测试经验 资产庞大 时漏洞发现率更高 框架类系统 存在大量已知漏洞 接口FUZZ 是重要突破口 二、防御建议 基础防护 : 严格的身份验证机制 合理的权限控制 输入输出过滤 框架安全 : 及时更新框架版本 修改默认配置和接口路径 禁用不必要的功能接口 监控审计 : 异常请求监控 敏感操作日志记录 定期安全评估 三、学习建议 漏洞复现 :搭建测试环境实践各类漏洞 工具掌握 :熟练使用文中提到的各类工具 持续学习 :关注框架漏洞的最新动态 注:本文所有漏洞均已修复,仅供学习参考。实际测试必须获得合法授权。