12306 获取票接口难道没有防重放吗
資深大佬 : hackingwu 65
12306 获取票接口难道没有防重放吗? 如果有,那刷票软件是怎么破解他的防重放的呢?
大佬有話說 (16)
12306 获取票接口难道没有防重放吗? 如果有,那刷票软件是怎么破解他的防重放的呢?
刷票软件唯一需要破解的是验证码,其他都是模拟操作就行了。
“防重放” 一般防的是第三方监听了一个 “有效请求” 之后,通过再次发送这个请求来达到一些其它的目的。
举例:
张三 使用某银行 APP,向 李四 转账了 100 元,银行 APP 调用某接口,正常的完成了这个请求。
但是这个请求被 王麻子 通过中间人攻击监听到了;
> 此处为防监听,也就是 https 常见的工作内容)
> 王麻子由于未持有银行域名的 https 证书,未能完成监听
于是王麻子把请求原样发送了 3 遍,期望张三给李四再转 300 元;
> 此处为防重放,一个活儿不能干多次
> 由于银行记录了请求 ID,直接忽略了这 3 次请求
王麻子又试着把请求中的收款人改成自己,期望能收到张三的转账;
> 此处为防篡改,保证执行的内容和发送者发送的一致
> 银行校验请求签名不一致,直接拒绝了这个请求,同时把请求留档给了安全部门
而抢票软件干的事情相当于什么?
张三 使用某银行 APP,向 李四 转账了 100 元,转账 ID 01。
张三 使用某银行 APP,又向 李四 转账了 100 元,转账 ID 02。
张三 使用某银行 APP,又向 李四 转账了 100 元,转账 ID 03。
这三个请求是互相独立的,不叫 “重放” ,只是恰好业务一致而已。