渗透测试 | 分享某次项目上的渗透测试漏洞复盘
字数 1976 2025-08-29 22:41:32
渗透测试实战案例教学文档
0x1 前言
项目背景
- 与市网信办合作的渗透测试项目
- 测试范围广泛:包含市政企单位和学校
- 资产类型多样:Web资产、APP、小程序等
- 所有发现的漏洞已修复,仅用于教学目的
准备工作
-
资产整理:
- 收集甲方提供的资产表格(Excel/TXT格式)
- 分类整理Web资产、APP、小程序漏洞
- 示例资产表格内容:
http://example1.gov.cn http://example2.edu.cn app://com.example.app
-
授权文件:
- 确保获得合法渗透测试授权书
- 明确测试范围和边界
0x2 漏洞一:短信轰炸漏洞
纵向轰炸(同一手机号多次发送)
-
测试步骤:
- 定位手机验证码登录接口
- 使用Burp Suite拦截发送验证码请求
- 首次发送正常,第二次被限制
-
绕过技巧:
- 尝试特殊字符绕过:
@、空格、+86、逗号等 - 示例有效载荷:
13800138000@、13800138000,
- 尝试特殊字符绕过:
-
自动化攻击:
- 使用Burp Intruder进行并发爆破
- 配置多个绕过字符作为payload
- 实现每分钟发送大量验证码
横向轰炸(不同手机号同时发送)
-
测试步骤:
- 拦截验证码发送请求
- 修改手机号参数为双手机号格式:
13800138000,1580015800013800138000@15800158000
-
漏洞利用:
- 使用卡二收到的验证码登录卡一账号
- 潜在危害:越权登录高权限账号
防御建议
- 后端严格验证手机号格式
- 限制同一IP的发送频率
- 增加图形验证码
0x3 漏洞二:SessionKey三要素泄露
漏洞原理
微信小程序SessionKey、iv、encryptedData三要素泄露导致未授权登录
利用工具
- 独立工具:
- wx_sessionkey_decrypt:https://github.com/mrknow001/wx_sessionkey_decrypt
- Burp插件:
- BurpAppletPentester:https://github.com/mrknow001/BurpAppletPentester
测试步骤
- 定位微信小程序手机号快捷登录功能
- 拦截登录请求,获取SessionKey三要素
- 使用工具解密获取手机号
- 替换数据包中的手机号为管理员号码
- 重放请求实现未授权登录
关联漏洞:弱口令
- 通过获取的手机号尝试常见弱口令
- 示例:
手机号后六位、123456、admin123 - 成功登录后台获取敏感信息
0x4 漏洞三:JWT攻击
JWT爆破攻击
-
测试步骤:
- 拦截包含JWT令牌的请求
- 使用jwt.io分析令牌结构
- 爆破常见密钥(如123456)
- 修改payload中的关键字段(如userID、role)
-
payload结构分析:
{ "role": "appUser", "exp": 1747377338, "userId": "xxxxxxxxxx", "user_key": "xxxx-xxxx", "username": "13800138000" }
None算法绕过
- 使用jwt_tool工具(https://github.com/ticarpi/jwt_tool)
- 生成四种None算法变体:
python3 jwt_tool.py <JWT> -X a - 依次尝试替换原始令牌
防御建议
- 使用强密钥
- 禁用None算法
- 严格验证签名
0x5 漏洞四:OAuth2.0漏洞
漏洞原理
二维码扫描登录缺少二次确认,导致钓鱼攻击可能
测试步骤
- 定位第三方登录功能
- 获取登录二维码
- 制作钓鱼页面诱导扫描
- 攻击者账号被绑定到受害者账户
防御建议
- 扫描后需用户确认
- 记录登录设备信息
- 设置绑定提醒
0x6 漏洞五:Jeecg框架漏洞
框架介绍
JeecgBoot:基于SpringBoot的低代码开发平台
综合利用工具
- jeecg漏洞利用工具:https://github.com/MInggongK/jeecg-
常见漏洞
-
接口信息泄露:
- 通过tableName参数获取数据库表信息
- 示例泄露接口:
/api/table/list
-
SQL注入:
- 测试tableName参数:
tableName=sys_user where 1=1-- -
权限提升:
- 注册普通账号
- 查找管理员ID
- 使用提权接口:
{ "roleId": "admin_role_id", "userIdList": ["your_user_id"] }
其他利用技巧
-
常见敏感接口:
/jeecg-boot/**/api/**/sys/user/list
-
默认弱口令:
- admin/123456
- jeecg/jeecg123
- test/123456
0x7 总结
渗透测试要点
- 资产收集:全面收集Web、APP、小程序等资产
- 漏洞验证:从低危漏洞入手,逐步深入
- 关联利用:组合多个漏洞提升危害等级
防御建议
- 定期安全评估
- 及时修复已知漏洞
- 加强开发人员安全意识培训
注意事项
- 所有测试必须获得授权
- 敏感信息需脱敏处理
- 测试完成后及时提交报告
附录:工具列表
- Burp Suite
- wx_sessionkey_decrypt
- jwt_tool
- jeecg漏洞利用工具
- HAE插件(Burp历史请求分析)
参考链接
- OAuth2.0漏洞详解:https://xz.aliyun.com/news/16153
- Jeecg官网:https://www.jeecg.com/