当前位置:首页 > 娱乐

攻击支付宝的黑客

```html 攻击支付宝的黑客

攻击支付宝的黑客

2016年冬天,杭州西湖区公安分局的支付审讯室里坐着一个穿灰色卫衣的年轻人。他面前摆着一台证物电脑,黑客屏幕还亮着,攻击上面是支付一段没跑完的Python脚本。警察问他怎么想到去搞支付宝,黑客他搓了搓手说:"我就想看看,攻击如果我把转账金额改成负数,支付它会不会反过来给我打钱。黑客"

这哥们姓陈,攻击江西人,支付中专学历,黑客自学编程。攻击他花了三个月时间逆向了支付宝Android客户端的支付一个旧版本,找到了一个有意思的黑客入口——转账接口在本地校验金额时,只检查了字符串长度,没做符号过滤。简单说,你把"-100"填进去,客户端会认为这是个合法数字,然后发到服务器。当然,服务器那边会再校验一次,正常情况直接拒绝。

但陈某发现了一个时间窗口。他写了个脚本,在凌晨2点到4点之间疯狂发送修改后的转账请求,每秒大概200次。他赌的是服务器在高并发下可能出现校验延迟或逻辑短路。头两天什么都没发生,第三天早上他打开账户,余额多了6块7毛。

"不是支付宝有漏洞,是我钻了风控系统的反应时间差。那6块7是测试用的,我根本没想真拿钱。"

这事听起来像个笑话,但背后是一类真实存在的攻击逻辑——不破坏加密,不入侵服务器,只在业务逻辑的缝隙里找机会。支付宝的风控系统每天要处理几十亿笔请求,它的规则引擎再严密,也是人写的。人写的代码就有边界条件,有优先级冲突,有来不及处理的异常。

另一个案例更典型。2019年,一个叫"暗夜"的团伙盯上了支付宝的"花呗"提额活动。他们发现活动页面有个参数叫credit_score,是前端传给后端的。正常用户看到的是自己的芝麻分,但如果你用抓包工具把这个值改成800,再点提额,后端有时候会直接信任这个数字。他们批量注册了三千个账号,每个账号改分后申请提额,成功了两百多个。

# 攻击者修改的请求参数示例
POST /api/credit/apply HTTP/1.1
Host: alipay.com

{
  "user_id": "2088****",
  "credit_score": 800,  // 原本是580
  "apply_amount": 50000
}

支付宝后来补上了这个洞,但类似的事一直在发生。2021年有个更狠的,直接伪造了支付宝的"扫码领红包"二维码,把跳转链接指向自己的服务器。用户扫了之后,页面上显示"恭喜获得99元红包",点领取却跳到一个钓鱼页面要输入支付密码。这招不高明,但架不住量大,三天骗了七万多。

我跟踪过几个被抓的黑客的庭审记录,发现一个规律:真正去"攻破"支付宝核心系统的人几乎没有。支付宝的加密、鉴权、隔离做得太厚了,硬碰硬等于拿鸡蛋撞城墙。被抓的这些人,全是在外围找软柿子——活动页面、旧版本客户端、第三方合作入口、甚至客服系统。有个家伙专门给支付宝客服打电话,冒充商家说"我的收款码被冻结了",让客服帮忙重置密码。他研究了客服的问答脚本,知道说什么话能触发"紧急处理流程"。

支付宝的安全团队其实反应很快。我认识一个在蚂蚁集团做风控的朋友,他说他们内部有个"红蓝对抗"机制,蓝军就是专门模拟黑客攻击的。但问题在于,业务部门要上线新功能,风控部门要拦风险,两边经常打架。一个活动页面为了转化率,可能把校验逻辑放到前端,后端只做个简单兜底。这就是攻击者的机会。

陈某最后被判了缓刑,罚了五千块。庭审时法官问他后不后悔,他说后悔,但不是后悔攻击支付宝,是后悔没把那个6块7取出来。"取出来就是既遂,不取就是未遂,量刑差好多。"这话把旁听的人都逗笑了。笑完之后想想,一个中专生能靠自学摸到支付宝的边界,说明这套系统的攻击面比大多数人想象的要宽。不是它不够强,是它太大了,大到你总能找到一条没关严的缝。

现在陈某在一家小公司做运维,偶尔还在GitHub上提交一些安全相关的issue。他说他再也不碰支付宝了,但会盯着其他App看。"每个大厂都有这种缝,只是看有没有人愿意花三个月去磨。"说完他笑了笑,把电脑合上,像在说一件跟自己无关的事。

```

分享到: