# 银行 / 金融行业渗透 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 商户密钥) └── 测试支付网关凭据(沙箱密钥用于生产) ``` **探针清单**: ```bash # 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 / 用友 / 金蝶等) ```