第九章 一个能大赚一笔的漏洞
  从杨坚家里出来,回加拉格家的这一路上,伊恩整个人还有些惊魂未定。他紧紧拽著自己的夹克领口,仿佛斯维特拉娜那带著极强压迫感的俄式口音还在他耳边迴荡
  “所以……”伊恩踢飞了路边的一颗石子,深吸了一口气,转头看向身旁的杨坚,“到底为什么?利普那个白痴为什么要搞这么一出变態的『测试』?”
  “因为他在帮你收拾床底下的《barely legal》时,极度不小心地抖出了里面夹带的私货——比如一本封面是两个肌肉猛男抱在一起的地下同志杂誌。”杨坚耸了耸肩,语气轻鬆地揭晓了答案。
  伊恩猛地停下脚步,双手痛苦地捂住了脸,发出一声绝望的哀嚎:“老天啊,杀了我吧!他全知道了?!”
  “別那么紧张,伙计。”杨坚拍了拍他的肩膀,语气里透著属於成年人的包容与豁达,“这里是芝加哥南区,大家连明天的早饭在哪都不知道,谁还有空去评判別人的性取向?每个人都有选择自己生活方式的权利,只要你不偷不抢,你喜欢男人还是女人,都值得绝对的尊重。”
  听到这番话,伊恩从指缝里抬起眼睛,有些惊讶地看著杨坚。
  在南区这种充斥著粗鄙、歧视和帮派文化的地方,“尊重”是一个极其罕见的词汇。杨坚这种平静且理所当然的態度,让伊恩原本紧绷的神经瞬间放鬆了下来。
  “谢谢你,杨。认真地说。”伊恩嘴角终於露出了释然的笑意,但他隨即眼珠一转,用肩膀撞了撞杨坚,故意调侃道,“既然你这么开放……那你觉得,我如果喜欢你这种有著完美下頜线的亚裔帅哥类型,怎么样?”
  杨坚如同触电般猛地往旁边跳开了一大步,双手交叉在胸前比了个大大的“x”。
  “打住!立刻把这个极其危险的念头掐死在摇篮里!”杨坚一脸严肃,毫不犹豫地斩断了他的念想,“我是个百分之百、如假包换的钢铁直男,我只喜欢前凸后翘、热情火辣的女人。你敢对我有非分之想,我就敢再花十五美金把刚才那个俄罗斯女人请回来!”
  “哈哈哈!你该看看你现在的表情,见鬼!”伊恩被杨坚夸张的反应逗得大笑起来。
  看著笑得前仰后合的伊恩,杨坚也忍不住跟著笑了起来。
  老话说得好,男人关係变铁有三大捷径:一起同过窗,一起扛过枪,一起嫖过娼。今天这事儿虽然杨坚只是在门外当了个“拉皮条兼放风”的,但这种极其荒诞且私密的共同经歷,无形中將两人的关係拉近了一大步。
  两人一路有说有笑地推开了加拉格家的后门。
  听到动静,利普像一阵风似的从楼上冲了下来。他先是看了一眼杨坚,杨坚冲他挑了挑眉,极其肯定地点了点头。
  利普深吸了一口气,转头看向自己的弟弟,表情有些复杂,但更多的是释然。
  记住我们101看书网
  “所以……你是弯的。”利普走上前,语气肯定。
  “是的,我是。”伊恩看著哥哥的眼睛,没有任何闪躲。
  空气短暂地安静了一秒钟。隨后,利普猛地伸出手,一把揽住伊恩的脖子,用力揉了揉他的红头髮,笑著骂了一句:“你这个藏得挺深的混蛋。听著,无论你喜欢什么,你永远是我弟弟,这事儿绝不会改变我们之间的任何东西,懂吗?”
  “我知道。”伊恩笑著锤了利普的胸口一拳。
  站在一旁的杨坚看著这一幕,心里暗自感慨。作为穿越者,他太清楚这俩兄弟的羈绊有多深了。在原著剧情里,即使后来利普通过学校的血液检测项目,查出伊恩其实是莫妮卡和弗兰克的兄弟生的,两人只是同母异父,但这份超越血缘的兄弟情谊却从未有过半点动摇。
  把话说开之后,利普转头看向杨坚,恢復了那副街头混混的精明模样:“对了,杨。你要求的那五台砖头机,今天下午没时间去红线地铁摸鱼了,手里暂时没有货。给我几天时间,我保证给你弄来。”
  “不著急,注意安全,別被警察逮著就行。”杨坚点了点头。
  他现在確实得重新规划一下资金了。卖手机赚的一百二十刀,买无线热点花掉六十,刚才又给了俄婊十五刀,加上之前兜里剩下的三个钢鏰,他现在的全部身家只剩下可怜的四十八美金。这点钱在南区连当个倒爷的启动资金都紧巴巴的。
  “还有个事儿。”杨坚清了清嗓子,极其厚脸皮地凑到利普跟前,“你手里有没有关於 java编程入门的教材或者旧书?”
  “java编程入门?”利普像看外星人一样看著他,隨后爆发出一阵极其放肆的嘲笑,“老天,你是个大学生!一个拿了计算机信息系统专业本科文凭的人,跑来找一个南区的高中生借编程教材?你大学学费是用来买大麻了吗?”
  “別废话,就说有没有。”杨坚翻了个白眼。
  他当然没放弃写代码搞钱的念头。想当年,他好歹也是正儿八经拿过卡耐基梅隆大学(cmu)计算机硕士学位的,作为曾经大厂里云计算方向的资深软体工程师,天天跟 go和 next.js打交道,计算机底层的算法和逻辑早就烂熟於心。现在无非是回到十多年前,捏著鼻子重新適应一下 java这种在后世看来略显笨重和繁琐的语法罢了。
  语言只是工具,核心的思维还在。
  “等著。”利普一边嘲笑,一边走到客厅角落那个堆满杂物的纸箱里翻找了一通。
  片刻后,他隨手扔过来一本极其厚重的书。
  “啪!”
  杨坚稳稳接住。
  这是一本不知道经过了几手摧残的《java编程从零开始》。经典的head first系列丛书,本科生和初级程式设计师基本人手一本。
  封面上甚至还沾著极其可疑的油渍和类似番茄酱的污垢,但好在里面的印刷字跡依然清晰可见。
  “谢了。这算你欠我的那五台手机的利息。”杨坚毫不客气地把书夹在腋下,“我先回去了,祝你们有个愉快的夜晚。”
  ……
  回到自己那个发霉的出租屋,杨坚洗了个手,盘腿坐在破沙发上,开始翻看那本沾著油渍的旧书。
  一页、两页、十页……
  凭藉著前世扎实的计算机功底,重新看这种入门级的语法书,对他来说就像是一个开惯了自动挡超跑的老司机,重新坐进了一辆手动挡的老爷车里。
  虽然需要花点时间去重新適应那繁琐的离合和生涩的档位,但怎么打方向盘、怎么看后视镜的底层逻辑早就刻在了肌肉记忆里。
  他脑子里飞速地將 go语言的並发模型和 java的面向对象机制进行著对照翻译,重构著自己在这个时代的技能树。
  让他惊喜的是,他感觉自己的脑子转得简直比以前快了无数倍!重生前,他在大厂里跟风去学那些晦涩的 ai大模型和底层算法时,看两页 paper就觉得头昏脑涨、老费劲了;但现在,这些复杂的逻辑和代码结构在他眼里极其清晰明了。
  也许是穿越带来的重生福利,又或者仅仅是因为这具二十岁出头的年轻肉体,大脑皮层正处於最具活力的巔峰状態,拥有著极其恐怖的高效运转能力。
  翻著翻著,当他看到书里关於“java日誌处理(log)”这一章节时,他的动作猛地停住了。
  “日誌……”
  杨坚死死地盯著书页上的字眼,大脑深处仿佛有一道沉睡的闪电骤然劈下,瞬间照亮了他的记忆库。作为平时习惯关注业內新闻、且当年在公司里亲手参与过相应漏洞排查和应对的资深开发,他对这玩意儿太敏感了。
  “臥槽!”
  杨坚猛地合上书,心臟开始剧烈地狂跳。
  他想起来了!
  在后世那个网际网路高度发达的时代,曾经爆发过一个震惊全球、让所有大厂程式设计师通宵熬夜加班修復的史诗级漏洞——log4j漏洞(log4shell)!
  这可是直到 2021年底才被正式曝光的核弹级古老漏洞!
  在很多人的认知里,这个漏洞是在后来的 log4j2版本中才彻底爆发的。但杨坚清楚地记得当年在技术论坛上看过的一篇深度溯源贴:其实早在 2001年左右,当 java的日誌框架开始引入 jndi(java naming and directory interface)机制和动態组件(比如 jmsappender)来处理复杂日誌时,这个可怕的祸根就已经悄悄埋下了!
  它的原理说难不难,仅仅是因为日誌组件中包含了一个致命的 lookup解析功能。黑客只需要在网页搜索栏、登录框或者任何会被伺服器记录日誌的地方,输入一段极其简单的特定字符串,一旦这行字符串被底层框架解析,伺服器就会自动去下载並执行黑客指定的恶意代码!
  这就相当於你对著门卫喊了一句暗號,门卫不仅把你放了进去,还把整个金库的钥匙主动塞到了你手里!直接就是 cvss评分 10.0的满级杀伤力,能够实现极其致命的远程代码执行(rce)。影响范围之广,几乎覆盖了全球一大半的网际网路企业和云服务。
  杨坚甚至还清楚地记得当年国內那个大瓜:2021年 11月,阿里云的安全工程师最早发现了这个恐怖的漏洞。但在发现之后,阿里云並没有第一时间先通知中国工信部,而是直接按照开源社区的惯例上报给了美国的 apache软体基金会。结果这事儿惹得高层大怒,工信部直接暂停了与阿里云的网络安全威胁信息共享合作,硬生生把这个云计算巨头关了半年的小黑屋。
  “现在是 2011年,虽然那些夸张的微服务架构还没完全普及,但苹果、谷歌、亚马逊这帮巨头的底层伺服器上,绝对已经跑满了带有这个 jndi隱患的 java早期日誌组件!”
  杨坚激动得双手都在颤抖。
  发现这类底层漏洞的逻辑对他这个经歷过后世技术大爆炸的人来说並不算太难。只要他顺著这条思路,在本地环境里復现出一个类似的攻击模型,证明在这个年代同样可以通过 jndi注入拿下伺服器权限,然后打包整理成一份极其详尽的漏洞报告……
  硅谷那些科技巨头都有极其丰厚的漏洞赏金计划(bug bounty)。只要他把这份报告精准地提交给那些最怕伺服器宕机、最怕数据泄露的大公司,比如谷歌或者微软,开口要个大几万甚至十几万美金的赏金,对於那些財大气粗的巨头来说,简直就是九牛一毛!
  杨坚极其冷静地在脑海中盘算著。在这个移动网际网路和云计算刚刚起步的2011年,java作为企业级应用绝对的霸主,其底层架构几乎覆盖了全美90%以上的大型科技公司。
  从亚马逊 aws云服务的早期雏形,到谷歌庞大的內部业务系统,再到华尔街各大银行的结算后台,全都是 java的重度用户!
  拥有覆盖面这么广、杀伤力这么恐怖的“核弹”,只要操作得当,这绝对会成为他在这个时代掘到的第一桶金。
  不过,在真正动手写 exploit(漏洞利用程序)之前,他得先摸清 2011年这个时代的“安全市场行情”。他可不想白干一场。
  杨坚迅速翻开笔记本,连上刚买的 3g热点,打开略显简陋的谷歌搜索页面,指尖在键盘上飞速敲下了一行关键字:“bug bounty program rce reward 2011”。
  隨著网页缓慢加载,几条关键信息跃然屏上。
  排在最前面的,是谷歌在去年刚推出、今年正大举扩张的 vrp(漏洞赏金计划)。上面明確写著:对於严重的远程代码执行(rce)漏洞,基础起步价是 3133.7美金(极客黑话 elite的谐音),如果漏洞涉及核心底层组件,赏金可以轻鬆突破数万美金。
  再往下看,还有像 zdi(zero day initiative)这种业內老牌的零日漏洞收购中介。对於这种能直接打穿伺服器的“满级大杀器”,zdi的收购价歷来大方,起步就是五万美元,遇到特別关键的通用组件,甚至能逼近十万美元的大关!
  “绝对不能报给 apache基金会,那帮搞开源的穷光蛋可没钱发奖金。得直接拿著完整的攻击报告,去找 zdi或者谷歌的安全中心『要赎金』。”
  杨坚在心里迅速確立了商业模式。
  看著屏幕上那些诱人的数字,杨坚的呼吸逐渐变得急促起来。他的心中充满了兴奋,以及即將摆脱贫穷的强烈期待。
  “大公司的漏洞审核和財务打款流程虽然繁琐,至少需要几周甚至一个月的时间,但只要能拿到 cve確认邮件,这笔钱就板上钉钉了。”
  他重重地合上那本沾满油渍的旧书,十指交叉,把指关节按得咔咔作响。
  “接下来这几天,就在这台破戴尔上搭个本地测试环境。只要能把攻击代码完美復现出来,我就能拿著这份报告,从硅谷巨头的手里稳稳地抠出第一桶金!”
  “这不比倒卖二手iphone强完了?”