一亿梦醒:外卖首富的逆袭与救赎 第7章 数学的焰火——“可延迟到账”漏洞

第7章 数学的焰火——“可延迟到账”漏洞

缅北X园区的D栋原来是间废弃中学,黑板裂着缝,粉笔字还留着“距离高考还有36天”。此刻却成了“话术培训室”。

李朝阳被编在“狗推三组”,花名“白猪”。凌晨1:30,别的“猪仔”都去冲业绩了,他被单独留下“补课”——昨天他连续三次把“客户”聊到报警,业绩垫底。

“虎爷说了,再给你最后一次机会。”主管阿威用甩棍敲着讲台,“今晚背不完30页剧本,水牢自己游回去。”

灯管滋啦滋啦闪,李朝阳盯着黑板,脑子里却全是数字:

——今天23个“客户”,累计转账187万元,平均8.13万/人;

——系统要求30分钟内“分账”到18个三级卡;

——可实际到账时间平均47分钟,最快21分钟,最慢93分钟;

——为什么?

他天生对数字过敏。小时候家里开小卖部,他拿算盘当积木,把进货价倒背如流。送外卖那几年,他把整座城市的红绿灯周期背下来,写成27×27的矩阵,只为推算“最优送餐路径”。

现在,这套大脑自动把诈骗园区的“跑分”流程当成一道“动态规划题”。

今晚的“客户”是个上海阿姨,被骗48万。李朝阳故意把卡号写成“6228482112345678999”,最后三位999是假位,银行会强制退回。

他挨了20鞭,但成功把48万“冻”在通道里。

回到宿舍,肋骨疼得睡不着,他拿指甲在墙上刻时间轴:

T0:客户手机银行发出转账指令

T1:转出行走大小额系统或超级网银

T2:接收行验证卡号、户名、开户行

T3:返回“成功/失败”报文

T4:园区后台刷新“到账状态”

问题出在T2→T3:如果接收行发现“户名与卡号不符”,会挂起报文,最长可挂24小时。

但园区系统却提前把“成功”回执弹给“客户”,催促继续加码。

——这是“时间差”。

——时间差=窗口期。

——窗口期=生机。

老K,因赌球欠800万被卖进来。李朝阳在操场放风时,用馒头渣摆出“Fibonacci”数列,成功吸引了这位理工男。

“你想逃?”老K推了推碎了半边的眼镜。

“我想救人,也想自救。”李朝阳在地上画了一条时间轴,“如果我们能把‘失败’回执延迟30分钟,就能让受害人多30分钟醒悟,也给自己30分钟‘假业绩’,少挨打。”

老K愣了3秒,突然把馒头全塞进嘴里:“兄弟,你缺的是数据,我缺的是自由。干!”

园区“技术部”设在行政楼3层,门口24小时有枪兵。老K因为会写代码,被调去帮忙维护“跑分后台”,每周三可以进机房。

周三凌晨2点,李朝阳故意在厕所点燃一卷卫生纸,触发烟感。守卫跑向厕所,老K趁机把32G的U盘插进服务器,dump了最近7天的“订单+银行回执”日志。

日志文件4.3G,加密压缩。老K把文件切成1024片,伪装成“美女头像”jpg,通过内网QQ发给自己小号。

第二天放风,他把U盘吞进肚子,再拉出来,交给李朝阳。

——这是他们的“数据隧道”。

拿到日志后,李朝阳用3个晚上,把4.3G文本全读进大脑。

他在墙上画了一张“heat-map”:

横轴——时间(0-24h)

纵轴——银行名称(工行、农行、招行…)

颜色——到账延迟(绿≤30min,黄30-60min,红>60min)

规律浮现:

1.工行、建行23:00-02:00黄色最浅,延迟最低;

2.邮储、农商15:00-17:00红色最深,延迟最高;

3.招行、平安12:00-13:00出现“绿色尖峰”,但12:30突然全部变红。

李朝阳把招行12:30的312条日志单独拎出来,发现:

——所有“失败”回执都在12:30:45这一秒集中返回;

——而“成功”回执却提前45秒,在12:29:60批量出现。

“12:29:60?时间戳怎么会有60秒?”老K瞪大眼。

“说明系统造假,服务器把时间写死了。”李朝阳用指甲划出一条竖线,“如果我们能让‘失败’也卡在12:29:60这一帧,就能制造‘假成功’,把真失败隐藏30分钟。”

园区后台用MySQL,时间字段datetime默认精确到秒。老K找到一段Java代码:

```java

SimpleDateFormatdf=newSimpleDateFormat(yyyy-MM-ddHH:mm:ss

Stringts=at(newDate);

```

——服务器时间来自本地NTP,NTP可以伪造。

但园区网管把外网NTP全封了,只剩10.0.0.1这台“主时钟”。

老K提出:用区块链区块时间做“第三方时钟”。

——BTC平均10分钟一个块,时间戳不可回滚;

——他们把区块的hash前8位转成十进制,除以60,取余数,得到“偏移量”;

——再用偏移量去“回拨”服务器本地时间,最多回拨59秒。

只要让“失败”回执落在“回拨区间”,就能把时间写成12:29:60,而真实世界已经过去30分钟。

——他们给这个漏洞起名:Delay-59。

4月7日,周六,园区“月度冲刺”。虎爷放话:单日流水破5000万,全员加鸡腿;破不了,随机抽10个人“沉塘”。

李朝阳主动请缨:“给我50个客户,我冲500万。”

阿威狐疑,但还是分了50条“鱼”给他。

中午12:25,李朝阳把50张“接收卡”全部设为招行二类电子卡(单日限额1万),再把户名故意写成“朝日先”。

12:29:15,他在后台脚本里触发Delay-59,服务器时间被回拨42秒。

12:29:60,系统批量生成“成功”回执,实际银行正在排队验证。

客户看到“到账成功”,被引导继续加码。

——30分钟里,50人又追加了318万。

13:00,银行批量返回“户名不符”,资金原路退回。

但园区账面已经计入818万,李朝阳“业绩”第一。

虎爷大喜,亲自给他发“金牌狗推”勋章。

——Delay-59首战成功。

漏洞用多了,必然暴露。

4月15日,技术部发现“招行电子卡”异常退款率62%,而工行只有3%。网管在日志里看到大量12:29:60这种“幽灵时间”,立刻上报。

虎爷下令:彻查。

老K被反铐在机房,笔记本电脑砸得稀烂。

李朝阳被吊在操场,胸口烙铁印“狗”。

但两人早就做了“B计划”:

——把Delay-59拆成7个碎片,分别藏在7台不同服务器的cron脚本里;

——触发条件改为“收到指定短信验证码”,验证码就是外卖暗号“多加香菜”。

只要他们不主动触发,谁也找不到漏洞入口。

老K在挨打时,悄悄把区块链区块hash写进自己手臂:

0000000000000000000c9d7e4f3c4c4f3d8f2a5b6c1d8e0f7a8b9c0d1e2f3a4

——这串字符就是Delay-59的“钥匙”。

李朝阳用这串钥匙,把求救信息拆成32段,每段64字节,分别塞进32张“客户回执”的备注栏。

——银行备注栏最长140字符,支持Unicode;

——他们用Base64编码,把“园区坐标+被困人数+内部照片”切成碎片;

——再利用Delay-59,让32条回执在同一“伪造时间”生成,形成完整证据链。

4月20日12:30,32条“失败”回执一起发出,飞向32个不同的收款人——其实是32个国内志愿者。

——这就是第34章“把求救短视频发到TikTok”的技术原型。

事后复盘,李朝阳在墙上写下最后一行公式:

Δt=(T_fake–T_real)≤30min

当Δt被无限放大,黑暗就能多暴露30分钟;

当Δt被压缩到0,阳光就照进来。

他把公式命名为“朝阳恒等式”。

老K在遗言里说:“别把我们当数据,但请用数据救我们。”

李朝阳用指甲把这句话刻在肋骨上,像刻下一道数学定理。

——从此,他再也不怕做数学题,因为每一道公式,都可能是一条命。

灯泡滋啦一声又灭了,走廊传来发电机闷雷般的咳嗽。李朝阳被反铐在暖气片上,嘴里塞着抹布,血顺下巴滴在《诈骗话术30天速成》的封皮,红得刚好盖住标题里的“速”字。

阿威用甩棍敲他额头:“说,谁帮你改的服务器时间?”

李朝阳咧嘴笑,露出缺了半颗的门牙——那是昨晚他亲手磕的,为把一枚32G的TF卡藏进牙床。卡里是Delay-59的全部日志,也是32条“碎片求救”的母本。

“没人帮,我数学好。”他含混答。

阿威一棍砸在他左肩,正是上周枪伤的位置,血纱布瞬间殷透。李朝阳眼前一黑,却借疼痛在脑子里重新跑了一遍公式:

Δt=(T_back-T_now)≤1800s

——再挨30分钟,就能把下一批“失败回执”推迟到1:45,那时国内银行夜班清算切换,招行会二次挂账,资金至少再冻2小时。

2小时,足够林笙把纪录片素材剪成60秒短视频发出去。

他数着秒,把疼痛当节拍器,一秒一秒往下熬。

同一时刻,行政楼3层机房。老K被捆在42U机柜的立柱上,十指反扣,却仍能用脚尖敲击地面。

敲的是莫尔斯码——

-.--.-...-./...../-....-...--.--.-..

(YAVEISDELAYED)

他把Delay-59的“59”敲了59下,停3秒,再敲的区块高度7-3-7-4-9-9。

机房隔音棉很厚,可楼板有一条1cm裂缝,直通楼下女厕。

女厕里,越南籍模特阿阮正假装补妆,耳朵贴地。她本是“狗推七组”的语音诱饵,此刻却成了老K的“人形天线”。

阿阮把莫尔斯转写成0/1,用口红写在卫生巾背面,再卷进一次性手套,塞进内衣。

10分钟后,这副“手套”被丢进垃圾车,垃圾车每晚4点准时去食堂喂猪。

李朝阳的“数学焰火”与老K的“脚底电报”在垃圾车里完成交汇,像两条不对称的函数,终于找到唯一交点。

垃圾车司机是湖南少年阿鬼,19岁,因欠20万网贷被卖进来,白天铲猪粪,晚上运垃圾。

他欠李朝阳一个人情——上周他娘急性阑尾炎,园区“医务室”只给泻药,是李朝阳把仅剩的200元退烧贴塞给他,让他寄回家。

阿鬼捡起手套,用洗洁精洗掉油污,露出卫生巾上的0/1矩阵。

他不懂莫尔斯,但懂“二维码”。

他把0/1转成16×16黑白格,再用旧诺基亚6300拍成96×96bmp,插上数据线,通过早已破解的“缅甸小灵通”彩信网关,发到国内一张159开头的副号。

副号的持有者,是林笙。

凌晨4:29,林笙邮箱收到一封标题为“”的空白邮件,附件只有9KB的bmp。

她放大图片,用Python把0/1重新扫成字符串,得到64位hash:

0000000000000000000c9d7e4f3c4c4f3d8f2a5b6c1d8e0f7a8b9c0d1e2f3a4

——正是老K手臂上那串。

林笙瞬间明白:李朝阳把“求救信号”写进了区块链不可篡改的时间戳,也把“生”与“死”的锚点钉在这个区块。

她双手颤抖,把hash拆成两段,前32位做标题,后32位做正文,点击“发布微博”。

4:30,话题#求救#悄然上线,初始阅读量7。

5:00,阿威打累了,把李朝阳拖回水牢。水牢1.2米深,水面漂着死老鼠和香烟屁股,一脚踩下去,粪臭与血腥味混成胶状,堵在鼻腔里。

李朝阳靠着墙,默默计算:

——国内5点,缅甸3:30;

——招行2小时冻结窗口将在5:30关闭;

——只要5:15前再触发一次Delay-59,就能让32笔“失败”回执集体弹回,银行将强制退款,园区账面会瞬间蒸发818万;

——虎爷一定会暴怒,但也会把技术部所有人叫去查账,楼下守卫减半,是逃生的唯一缝隙。

他用脚趾在水面划了一道横线,像写下极限符号:

lim(Δt→1800)生存率=?

答案,必须自己算出来。

李朝阳闭上眼,把1-1-2-3-5-8的斐波那契数列当秒表,每数一个数字,就在墙上用指甲划一道。

划到89时,外面传来第一声枪响——虎爷发现818万不翼而飞,当场毙了技术主管。

划到144时,铁门被踹开,阿鬼满身是血冲进来:“哥,走!”

阿鬼手里攥着那张20万网贷的借条,已被血浸透,像一张作废的生死状。

李朝阳踉跄爬出水牢,左腿被铁丝划开10cm口子,却感觉不到疼。

他只知道:Δt终于撑满1800秒,公式成立。

——延迟到账,延迟的是死亡;

——提前到账,提前的是生机。

6:00,天边泛起蟹壳青。

国内微博热搜第一条:#求救#阅读1.2亿,讨论36万;

云南普洱边境,武警无人机起飞,航迹像一条长长的切线,直指X园区。

而园区里,李朝阳、老K、阿鬼、阿阮,四个人拖着一条13公里的逃亡路线,像四颗离散的点,正朝着唯一交点狂奔。

他们身后,虎爷的吉普车远光灯亮起,像一道垂直的渐近线,越来越近。

身前,是区块之后的新区块,,即将在6:10被挖出。

——那是区块链的“不可逆时钟”,也是他们的“生死下课铃”。

李朝阳把最后一口血沫吐掉,低声数:

“10、9、8……”

数字像焰火,在脑子里炸开。

——数学从未如此滚烫,也从未如此明亮。

下一章:第8章 组建自救小组《一亿梦醒:外卖首富的逆袭与救赎》章节目录上一章:第6章 认识老K:原某大厂P8,写代码的“狗推”

一亿梦醒:外卖首富的逆袭与救赎

···
加入書架
上一章
上一章下一章

第7章 数学的焰火——“可延迟到账”漏洞

%