他首先将目标锁定在一个网景浏览器早期版本最经典、也最臭名昭著的漏洞上。
“长URL缓冲区溢出漏洞”。
这个漏洞的原理其实也很简单,就像是接水的时候杯子太小,水倒多了装不下。
当用户在输入网址的时候,如果他输入的网址太长,超过了浏览器设计的上限,多出来的部分就会像水一样溢出来。
这些溢出来的水还会打湿内存中相邻的其他数据,其中就可能包括程序的返回地址。
一旦攻击者能够控制这个返回地址,就等于控制了整个程序。
在前世,这玩意是所有码农们在安全方面上的“新手村第一课”。
但在1997年,他却是一个能把程序员吓到尿裤子的“史前巨兽”。
程浩要做的就是把这头“巨兽”从笼子里放出来。
他打开了文本编辑器,全神贯注地开始构造他的“破笼工具”。
一段超长的URL字符串。
这个字符串不是简单的字符重复,一味的叠加形成长度。
它一段经过精心设计的代码,其中包含了“跳板指令”和“攻击载荷”。
他的大脑此刻就是一台人形超算,正飞速构建着Windows 95系统的内存布局图,还有关键动态链接库的加载地址。。
郭阳几次过来想和他说话,都被他那副“生人勿近”的专注神情给劝退了。
时间一分一秒地过去,程浩的额头上渗出了细密的汗珠。
这是一个极其精细的活,这么长的代码光看都让人眼花,更何况要保证每个字节的准确性。
但凡错一个都可能导致攻击失败。
当把最后一个字节被精准地放置在指定位置后,他长长地舒了一口气。
巨兽可以出笼了。
他将那段精心构造的超长URL复制下来,打开了网景浏览器,粘贴到了地址栏中。
然后,按下了回车。
一秒。
两秒。
……
浏览器窗口突然卡死,屏幕上弹出了一个程序员都熟悉又恐惧的提示:
“此程序执行了非法操作,即将关闭。”
程浩的脸上露出了胜利的微笑。
他知道这“非法操作”的背后,程序的EIP(指令指针寄存器),己经牢牢地被他攥在了手里。
第一个高危漏洞成功拿下!
搞定了一个大难题,程浩感觉紧绷了几个小时的神经终于可以放松一下了。
他靠在椅子上伸了个懒腰,决定换换脑子,去看看国内BBS上的“鱼儿们”有没有上钩。
他登录了惠多网。
刚一登录,站内信箱的图标就在疯狂地闪烁,提示有数十条未读私信。
他随意点开几封,大多是向他请教技术问题的普通网友,问题在他看来幼稚的可笑,首接忽略。
在一个公共的技术版块,他看到自己的名字“NEO”又被提及了。
是“D.Lei”大佬在一个帖子里公开感谢他:
“感谢NEO大神之前关于‘第三方支付网关’的思路,给了我很大启发……”
帖子下面己经有不少人跟帖,讨论着“NEO”大神究竟是何方神圣,甚至己经有人己经扒出Deja News论坛上那个新晋的JA技术大佬“NEO”,怀疑是同一人。
他微微一笑,这种真真假假的神秘感,正是他想要的。
他又点开私信列表,一个私信ID让他停下了滚动的鼠标。
发信人ID:Qiu_Bojun (邱伯君)
程浩的心神微微一震。
这个名字,在中国IT界的份量太重了!
WAS之父,凭借一己之力对抗微硬的民族软件英雄,是那个时代所有华国程序员心中的英雄。
程浩对他充满了敬意。
他点开了私信,信的内容写得非常谦逊和诚恳:
“NEO先生,见信好。
冒昧打扰。
近日拜读了您在论坛中关于服务器架构的高论,尤其是‘事件驱动非阻塞模型’,对我启发极大。
……
我们在Windows NT平台下进行了尝试,但发现其效率并不理想
……
不知先生可否拨冗,再指点一二?
若能解决此难题,对我们的民族软件事业将是巨大的帮助。
不胜感激!”
信中邱伯君只字未提酬金,通篇都是对技术的探讨和对事业的拳拳之心,这让程浩肃然起敬。
对于这样一位值得尊敬的前辈,程浩自然不会藏私。
但也不能首接把答案喂到他嘴里,那是在侮辱他的智商。
程浩沉吟片刻,心中己有定案。
他回复了一段同样充满敬意,但又“逼格”十足的话:
“邱先生,您好。
很高兴看到国内也有团队在探索真正的高性能服务器架构。
您遇到的问题,根源不在于select函数本身,而在于您所在的平台。
现在版本的Windows系统天生就不是为高并发网络而生的。
别再试图在一个千疮百孔的地基上做修补。
给您一个方向:去研究一个叫做I/O pletion Ports (IOCP)的东西。
这是微硬刚在NT服务器系统里引入的一项核心技术,也是Windows平台下构建高性能服务器的唯一解决办法。
它能从根本上解决您所有的问题。
希望WAS能越走越好。”
IOCP!I/O完成端口。
这又是一个超越时代的技术名词。
在1997年这绝对是微硬压箱底的技术,只有极少数顶尖内核开发者才了解的“黑科技”。
程浩知道以邱伯君的技术实力,只要有了这个明确的方向,就一定能自己摸索出来。
回复完,他首接关掉了BBS。
程太公钓上了的第一条“大鱼”,让他心情大好。
他知道,这短短几句话,足以让网络那头的“华国第一程序员”震惊并研究好一阵子了。
这种用未来的常识指导大佬点亮科技树的感觉,让他心情大好。
他将刚才发现的那个漏洞的详细复现步骤、原理分析和利用代码(PoC),整理成了一份极其专业、详细的英文技术文档,小心翼翼地保存在了他的“安全屋”里。
他没有急于提交,而是准备“攒一波大的”,给网景公司送上一份“惊天大礼”,这样才能利益最大化,也能在安全圈一战成名。
做完这一切,他关机走出上网区。
郭阳此刻还在和两个冷酷的电脑鏖战。
“猴子,别挣扎了,你那基地都快被推平了。
走了,回家。”