Files
reverse-skills-max/reverse-skill-repo/skills/pentest-tools/src-hunter/references/industry/banking-finance.md

15 KiB
Raw Blame History

银行 / 金融行业渗透 playbook

视角:黑盒,针对国内银行(国有/股份制/城商/民营)+ 第三方支付 + 聚合支付 + 互金平台。 数据基础:金融领域 2,919 个真实案例,68%–88% 高危占比。


1. 一句话定位

银行/金融业的漏洞特点:资金类漏洞占比小但单发价值高,鉴权层 + 接口层是主战场。一个支付绕过的赏金可以等于普通 SaaS 一年的全部收益。

不要盯着"网银 RCE"——那是十年前的玩法。今天值钱的是:

  • 第三方支付 / 聚合支付的接口签名缺陷
  • 手机银行 APP 的接口(鉴权往往比 Web 弱)
  • 直销银行 / 微信银行的"轻量化"业务系统
  • 信贷 / 风控管理后台的越权

2. 攻击面分层模型

┌─────────────────────────────────────────────────────────────────────────┐
│                          第一层:互联网边界                              │
├─────────────────────────────────────────────────────────────────────────┤
│  网银系统 │ 手机银行 │ 微信银行 │ 直销银行 │ 信用卡中心 │ 官网/活动页    │
│  小程序   │ APP      │ H5       │ 公众号   │ 营销活动   │ 客服系统       │
└─────────────────────────────────────────────────────────────────────────┘
                                    │
┌─────────────────────────────────────────────────────────────────────────┐
│                          第二层:接口/通道层                             │
├─────────────────────────────────────────────────────────────────────────┤
│  支付接口 │ 银联通道 │ 快捷支付 │ 代扣代付 │ 聚合支付 │ 开放银行 API     │
│  发卡接口 │ 风控接口 │ 短信网关 │ 二次认证 │ 数字证书 │ 人脸识别         │
└─────────────────────────────────────────────────────────────────────────┘
                                    │
┌─────────────────────────────────────────────────────────────────────────┐
│                          第三层:内部系统层                              │
├─────────────────────────────────────────────────────────────────────────┤
│  核心银行 │ 信贷系统 │ 风控系统 │ 反洗钱   │ 客户管理 CRM │ 报表系统    │
│  对账系统 │ 清算系统 │ 票据系统 │ 衍生品   │ 内部 OA      │ 邮件系统    │
└─────────────────────────────────────────────────────────────────────────┘

3. 高危漏洞类型分布(金融特化)

3.1 第一梯队:资金类(68%–88% 高危)

漏洞类型 高危占比 银行特有场景 主要 playbook
密码重置 88.0% 网银/手机银行登录密码、交易密码、支付密码 logic-flaws.md §3.1
提现 83.1% 转账限额绕过、提现校验缺陷 本篇 §4.3
金额篡改 83.0% 转账金额、理财金额、还款金额 logic-flaws.md §3.4
余额篡改 77.9% 账户余额、积分、虚拟卡 本篇 §4.4
订单篡改 74.2% 信用卡订单、理财下单 logic-flaws.md §3.4
价格篡改 74.3% 理财产品价格、增值服务 logic-flaws.md §3.4
支付绕过 68.7% 快捷支付、代扣代付、跨行转账 本篇 §4.1

3.2 第二梯队:鉴权 / 信息类

漏洞类型 案例数 银行特化场景
弱口令 7,513 网银运维后台、ATM 监控、行内 OA
越权 1,705 查看他人账户 / 流水 / 客户信息
验证码 334 登录、转账、密码重置、人脸识别
信息泄露 4,858 客户 PII / 交易记录 / 信贷资料

3.3 第三梯队:客户端 / 移动端

银行特有,通用 SRC 库少有覆盖:

  • 手机银行 APP 加固绕过:Frida / Objection 反调试
  • SSL Pinning 绕过:Frida hook
  • 本地存储敏感数据:sqlite / sharedPrefs / 内存中的明文密码
  • 签名算法逆向:交易请求签名(HMAC / RSA)
  • 小程序密钥硬编码:微信小程序包内的 AppSecret / 签名 key

4. 银行特有攻击场景

4.1 第三方/聚合支付接口(重点矿区)

攻击面:
├── 商户密钥泄露(GitHub/Gitee/外包代码)
├── 异步通知(notify_url)签名缺陷
├── 同步回调(return_url)参数可控
├── 金额二次校验缺失
├── 商户号越权(A 商户的 mch_id 用 B 商户密钥)
└── 测试支付网关凭据(沙箱密钥用于生产)

探针清单:

# 1. notify_url 重放
curl -X POST https://target/pay/notify \
  -d "out_trade_no=ORDER001&total_fee=100&trade_status=SUCCESS&sign=XXX"
# 看是否多次发货

# 2. 签名校验缺失测试
# 删除 sign / 置空 sign / 用错误 sign
curl -X POST https://target/pay/notify -d "out_trade_no=ORDER001&trade_status=SUCCESS"

# 3. 修改 total_fee 但保持 sign
# (多数实现是先校 sign 再处理金额,但有少数实现把 sign 算法暴露在前端)

关键参数:amount / total_fee / price / total / out_trade_no / trade_no / mch_id / sign / signature / appid / nonce_str / notify_url / return_url / attach。

4.2 手机银行 APP

APP 渗透流程:
1. 抓包突破:绕过 SSL Pinning(Frida / Objection)
2. 逆向分析:脱壳 → jadx 反编译 → 签名算法逆向 → 密钥提取
3. Hook 测试:绕过人脸/指纹/手势校验、修改限额检测
4. 接口比对:APP 接口 vs Web 接口的差异(APP 接口往往鉴权更弱)
5. 内部 SDK:埋点/推送/客服 IM 的 SDK 是否暴露内部接口

APP 鉴权常见缺陷:

  • APP 接口仅校验 token,不校验角色
  • APP 接口跳过 Web 的 WAF / 风控
  • APP 接口的 user-agent / 客户端类型 校验可绕过(仿造 User-Agent: BankApp/1.0)

详见 playbooks/mobile.md。

4.3 提现 / 转账(83.1% 高危)

转账接口测试矩阵:
1. 金额向负
   amount = -1000  → 收款方扣款,发款方加款
2. 限额绕过
   - 改 amount 数据类型:number → string ("100")
   - 用科学计数:1e10
   - 用极小小数:0.001 × 1000 次(凑齐限额)
3. 双花 / 竞态
   并发提现 N 次余额额度
4. 改收款方 (to_account / payee_id)
   把转账目标改成攻击者控制的账户
5. 状态机
   - 改 status=SUCCESS(伪造已成功)
   - 重放成功的转账回调

红线:

  • 不实际向陌生账户转账。所有金额测试用研究员自有账号 → 自有账号。
  • 极小金额(0.01 元)即停。
  • 任何"返还" / "撤回"操作都要立即截图存证,便于后续对账。

4.4 余额 / 积分 / 卡券

攻击 方法
负向转账 amount=-100
余额计算绕过 客户端请求中改 balance 参数
小数精度漏洞 提现 0.001 × 10000 次(舍入累积)
卡券生成 任意调发卡接口
积分汇率 兑换接口里改"1 积分 = X 元"的值

真实案例:

  • 神舟专车充值流程免输信用卡交易密码(套现绕过)
  • 鱼泡泡 APP 任意用户登录可影响余额(sign 绕过)
  • 宁波银行直销银行看任意卡余额
  • 中国平安某处验证逻辑问题导致管理商品价格

4.5 验证绕过(金融行业特别版)

短信验证码

├── 爆破:4–6 位数字 + 100 线程,30 秒爆完
├── 并发:绕过频率限制
├── 复用:同一验证码用多次
├── 回显:响应中泄露
├── 万能:测试期 0000 / 1234
└── 跨流程:注册流程的码用于重置

人脸识别

├── 照片攻击:纸照 / 屏幕回放
├── 视频攻击:眨眼 / 摇头视频
├── Hook 返回值:Frida hook 人脸校验函数
├── 接口重放:重放成功的人脸 API 响应
└── 替换人脸数据:抓包修改 face_data 字段

U 盾 / 数字证书

大多数 U 盾相关攻击在 2020 年后已被生物识别+硬件 TEE 取代,仅在企业网银仍少量在线。

交易签名

├── 签名密钥硬编码 / 通过 GitHub 找到
├── 关键字段未参与签名(如改 amount,sign 不变也通过)
├── 签名校验可选(删 sign 字段直接通过)
└── 签名算法降级(RSA → HMAC → MD5 → 无)

5. 高价值目标资产

目标系统 价值 黑盒可见度
核心银行系统 ⭐⭐⭐⭐⭐ 极低(内网)
信贷系统 ⭐⭐⭐⭐ 中(部分对外暴露审批/查询接口)
风控系统 ⭐⭐⭐⭐ 低
反洗钱系统 ⭐⭐⭐⭐ 低
CRM / KYC ⭐⭐⭐ 中
客服 / 工单系统 ⭐⭐ 高(最容易突破)
营销活动 / H5 ⭐⭐ 极高(最常见入口)
信用卡中心 ⭐⭐⭐⭐ 中

实战路径:从营销活动 H5 / 客服系统 → 撞库 / 越权 → 客户 PII → 联动信用卡中心 → 信贷系统。


6. GetShell / 横向移动

6.1 边界设备

VPN / 网关漏洞:
├── Pulse Secure CVE-2019-11510
├── Fortinet CVE-2018-13379
├── Citrix CVE-2019-19781
├── 深信服 VPN 任意密码重置
└── 安恒 / 启明 / 天融信 设备弱口令

CDN 回源:
├── 找真实 IP(fofa "icon_hash" / 历史 DNS)
├── 直接打回源
└── 配置层:Host 头注入

6.2 第三方外包 / 供应链

供应链路径:
├── 外包公司 → 开发测试环境 → 正式环境
├── 设备供应商 → 预置账号
├── 服务提供商 → 短信 / 身份核验 / 反欺诈 SDK
└── 印刷厂 / 卡商 → 卡号 / 加密密钥

6.3 GetShell 优先级(金融场景)

1. Struts2 RCE(S2-045/046/048/052/057/059)── 银行老系统常见
2. WebLogic 反序列化(CVE-2017-10271 / 2019-2725 / 2020-14882)
3. Shiro 反序列化(rememberMe)── 国产 OA / 工单系统常见
4. Fastjson RCE 1.2.x ── 接口层常见
5. Log4Shell ── 内部日志框架
6. 文件上传绕过 ── OA / CMS 编辑器

详见 playbooks/rce.md 和 playbooks/file-upload.md。


7. 实战 Checklist

7.1 信息收集

  • 子域枚举(含 ipv6)
  • APP / 小程序 / 公众号下载分析
  • GitHub / Gitee / 码云代码搜索(公司名 + commitor 邮箱)
  • 历史接口 Wayback Machine
  • 微信小程序 + 公众号底部菜单的 H5
  • 营销活动页 / 双 11 / 春节红包活动页
  • 客服系统 / 工单系统的子域
  • 信用卡中心独立子站

7.2 漏洞探测

  • 弱口令(运维后台 / OA / 邮件)
  • 业务逻辑(支付 / 转账 / 密码重置 / 信用卡分期)
  • 越权(横向 / 纵向)
  • 接口安全(签名 / 加密 / 重放)
  • APP 客户端安全(脱壳 / Pinning / 本地存储)
  • 第三方支付 notify_url 缺陷
  • 验证码(短信 / 图形 / 人脸)
  • 任意 X 子授权(任意账号 / 任意操作)

7.3 深度利用

  • 支付金额篡改(自账→自账)
  • 验证码并发爆破
  • 人脸识别接口重放
  • 并发条件竞争(提现 / 优惠券)
  • 内部接口越权(仅限可证明)

8. 真实案例指纹(金融)

案例 一句话指纹 漏洞分类
中原银行 GetShell(影响财付通 / 支付宝) 边界 Web RCE → 内网 边界 RCE
通联支付文件遍历读取(Oracle EBS) /oracle.../read?path= 任意文件读
某第三方支付机构 SOAP 注入(DBA + 9 库) WSDL 暴露 + WS 注入 SQLi
神舟专车充值免交易密码 客户端跳过 PIN 支付绕过
鱼泡泡 APP 任意账号 sign 字段空值绕过 任意账号
宁波银行直销银行看任意卡余额 API 不校验账户归属 IDOR
百姓大药房 2000W PII + 余额 弱口令 + 后台越权 弱口令
中国平安 100W PII + 价格管理 鉴权 + 价格校验缺失 越权

9. 红线(金融行业 SRC 特别版)

  • 绝不:转账给陌生账户。研究员账号自转自即停。
  • 绝不:实测信用卡盗刷 / 套现 / 实物兑换。
  • 绝不:使用真实客户的身份证 / 银行卡 / 手机号测试。准备 5+ 个研究员名下的测试卡。
  • 绝不:扫描银行公开 IP 段(涉嫌违反《关键信息基础设施安全保护条例》)。仅扫漏洞奖励计划明确授权的资产。
  • 绝不:在生产环境留 webshell / cron / SSH 公钥。证明到 RCE 即停,立即清理 + 在报告中说明清理时间。
  • 绝不:数据外泄(即使是给厂方)。报告中只贴 1–3 条脱敏样本。

10. 与方法论 / 字典链接

methodology/05-srctimebox-priority.md   →  金融行业的 88% / 83% 重点漏洞
playbooks/logic-flaws.md                 →  支付 / 订单 / 密码重置详细
playbooks/arbitrary-x-authz.md           →  任意账号(86.4%)/ 任意操作
playbooks/oauth-saml-jwt.md              →  SSO / JWT / 联邦身份
playbooks/mobile.md                      →  手机银行 APP
playbooks/race-conditions.md             →  并发提现 / 优惠券
dictionaries/default-credentials-cn.md   →  网银 / OA / 监控的国产默认凭据
dictionaries/chinese-srcfingerprints.md  →  金融常见组件指纹(致远 OA / 用友 / 金蝶等)