在诸天学习

关灯 护眼    字体:

第26章 挑衅

最新网址:m.biquw.cc

下午的计算机科学导论课,教室是阶梯式的,巨大的CRT显示器立在讲台旁,发出低沉的嗡鸣。

空气里混合着旧地毯、电子元件和淡淡的汗味。

谢尔顿毫不犹豫地拉着佩吉坐到了第一排正中央,仿佛那是谢尔顿的王座。

佩吉挨着他坐下,手指无意识地卷着笔记本的页角。

前排的压迫感很强,讲台上那位头发花白、语速沉稳的伯恩斯教授正在讲解冯·诺依曼体系结构,这内容对他们而言浅显得如同儿歌。

佩吉的心思完全不在上面,佩吉用胳膊肘轻轻碰了碰谢尔顿,声音压得极低,几乎是气音:“谢尔顿,最后问一次,你真的要上去?现在后悔还来得及。”

谢尔顿正用一支削得尖尖的铅笔在笔记本边缘飞快地画着某种复杂的波形图,闻言头也没抬,

只是嘴角咧开一个绝对称不上上扬的、带着点顽劣兴奋的笑容:“佩吉,想想看,当众指出一群自诩精英的高年级生可能存在的技术盲区,看着他们从傲慢转为惊讶,甚至挫败……这难道不是一种智力层面的爽快感?纯粹的、逻辑驱动的胜利愉悦。”

谢尔顿侧过头,“你不期待吗?”

佩吉愣了一下。画面瞬间涌入脑海:那些总带着居高临下神情的学长们,在谢尔顿的难题面前抓耳挠腮。

自信崩塌……一丝微小的、佩吉不愿承认的、类似恶作剧成功的笑意差点溜出嘴角。

佩吉猛地甩甩头,硬生生把嘴角压平,板起脸:“不期待!一点都不!我只希望今天能安全走出这栋楼。”

两小时的课程在谢尔顿的摩拳擦掌和佩吉的坐立不安中流逝。

下课铃响起,刺耳又急促。学生们像退潮般收拾书本,拉链声、椅子的刮擦声、交谈声瞬间填满空间。

伯恩斯教授合上讲义,对大家点了点头,准备拿起伯恩斯教授那标志性的巨大保温杯,慢慢踱步离开了教室。

就是现在!

谢尔顿像一颗被弹簧弹出的石子,“噌”地站了起来。动作太猛,椅子腿在水泥地上刮出刺耳的锐响。这声音像一把剪刀,瞬间剪断了教室里的嘈杂。

几十道目光——好奇的、疲惫的、不耐烦的——齐刷刷地聚焦在第一排这个突兀站起的小不点身上。

佩吉的心跳猛地撞到了嗓子眼,佩吉下意识地想伸手去拉谢尔顿的衣角,指尖却只触到冰凉的空气。

佩吉眼睁睁看着他脚步轻快,甚至带着点跳跃的意味,几步就踏上了讲台。

谢尔顿站得笔直,试图让自己显得更高大些,小手用力拍了拍讲台桌面,发出清脆的“啪啪”声,试图吸引那些正欲离开的人的注意。

“同学们!请稍等一下!”谢尔顿的童音在空旷的讲台上显得格外清亮,甚至有些尖细,努力穿透背景的噪音。

效果立竿见影。人们收拾书包的手也顿住了。

更多的人转过身,脸上带着不加掩饰的惊愕和滑稽感。

一个十一岁的孩子,站在MIT计算机系大三专业课的讲台上?这场景本身就足够荒谬。

谢尔顿深吸一口气,迎向那些混杂着惊诧、玩味和不耐的目光,清晰地说道:“我是谢尔顿·库珀,今年新生,十一岁,还有几个月满十二岁。”

谢尔顿特意强调了年龄,满意地看到前排一个戴着厚厚眼镜的男生挑高了眉毛。“我利用入学前半年的时间,搭建了一个个人网站,叫做‘梦网’。

功能还很简单,但我觉得……它有点意思。”

谢尔顿故意停顿了一下,目光扫过下方一张张年轻却已略带世故的脸庞。教室里异常安静,只有投影仪风扇还在徒劳地嗡鸣。

谢尔顿微微扬起下巴,那个招牌的、带着点天真又极具挑衅意味的笑容浮现在脸上:

“我把地址写在这里。”谢尔顿抓起粉笔,转身在黑板上用力写下,粉笔灰簌簌落下。

“欢迎大家去访问,去测试,去找出它的漏洞或者……任何你们觉得不合理的地方。”

谢尔顿转过身,粉笔头轻轻点在黑板的网址上,蓝眼睛闪着光,声音里充满了毫不掩饰的挑战:

“大家不会……连像小孩子的玩具一样的网站,一些问题都找不出来吧?”

空气凝固了。

仿佛有人按下了暂停键。所有细微的声响——翻动书页的窸窣、挪动脚步的摩擦、低低的咳嗽——瞬间消失。

几十张脸孔上的表情,在极短的时间内经历了一场剧烈的风暴:先是震惊,

就像是看到实验室的小白鼠突然开口讲课;紧接着,惊愕迅速被一种被冒犯的恼怒取代,如同平静的油锅里猛地溅入冷水;最后,那恼怒沉淀下来,凝结成一片冰冷的、带着审视与敌意的沉默。

几张靠后的面孔甚至毫不掩饰地撇了撇嘴,露出了轻蔑的嗤笑。

“哈!”一个坐在后排、穿着褪色乐队T恤、头发乱糟糟的男生率先打破了寂静,笑声短促而充满嘲讽,“小屁孩,作业写完了吗?就跑来这儿显摆你的‘网页’?”

男生故意把“网页”两个字拖得很长,引来几声附和的哄笑。

“就是,知道什么是TCP/IP协议栈吗?知道CGI脚本怎么写吗?”

另一个戴着厚瓶底眼镜、声音尖细的男生推了推眼镜,语速飞快,带着技术宅特有的刻薄,“别是拿FrontPage拖出来的吧?那玩意儿我们大一就不玩了。”又是一阵哄笑。

“嘿,谢尔顿小朋友,”一个身材高大壮实、穿着运动外套的男生抱着胳膊,声音洪亮,带着明显的戏谑,“要是我们真把你那‘梦网’戳得千疮百孔,你可别哭鼻子回家找妈妈啊!”这话引得哄笑声更大了,恶意也更浓了。

佩吉坐在第一排,感觉那些笑声和目光像针一样扎在自己身上,即使它们的目标是谢尔顿。

佩吉攥紧了拳头,指甲深深掐进掌心,脸颊火辣辣的。

佩吉飞快地瞥了一眼讲台上的谢尔顿。

谢尔顿身体还是那么的自信与挺拔。

佩吉的心猛地一沉,几乎能预见接下来可能的混乱场面——愤怒的高年级生,被推搡的谢尔顿,一片狼藉……

“够了,斯图尔特。”

一个平静的声音响起,并不高亢,却像一块石头投入喧嚣的池塘,瞬间压下了那些哄笑和议论。

声音来自教室左侧靠窗的位置。

说话的是个亚裔男生,面容清瘦,头发剃得很短,近乎青皮,穿着一件洗得发白的灰色套头衫。

德里克·金面前的桌上放着一台与周围笨重的台式机截然不同的便携电脑——一台IBM ThinkPad,在那个年代是稀罕物。

德里克·金手指修长,正轻轻搭在黑色的键盘上,眼神锐利如刀,越过哄笑的人群,精准地落在谢尔顿身上,带着纯粹的、不带情绪的审视。

“是不是玩具,看过才知道。”德里克·金淡淡地说,声音没什么起伏,却带着一种不容置疑的分量。

德里克·金不再理会其他人,手指在ThinkPad的TrackPoint小红点上灵巧地滑动、点击。嗒嗒嗒……清脆而快速的键盘敲击声在突然安静下来的教室里显得格外清晰。

屏幕上,黑色的命令行窗口弹出,光标闪烁。德里克·金输入命令的动作流畅而稳定,带着一种行云流水般的美感。

“啧,德里克出手了。”那个穿乐队T恤的男生收敛了笑容,抱起胳膊,一副看好戏的表情。周围的议论声变成了低低的嗡嗡声。

“德里克·金,”佩吉听到旁边有人低声说,“去年黑进教务系统改了自己成绩单的家伙……虽然最后被查出来了,但技术是真的硬。”

“看德里克·金怎么收拾这小鬼。”

德里克完全没有在意周围的反应。德里克的目光牢牢锁定在屏幕上。浏览器缓缓打开,显示出“梦网”那极其简洁的首页:深蓝的底色,如同静谧的夜空,中央是几行闪烁的银白色文字——“DreamNet:Where Ideas Spark”。

页面还算可以,只有几个链接:“日志”、“项目”、“链接池”、“好友”“论坛”。德里克快速扫了一眼页面源代码,动作没有丝毫停滞。

“前端太干净了。”德里克低声自语,听不出情绪。指尖再次飞舞,这次是打开终端,尝试Ping域名,解析正常。

接着是Traceroute,路径清晰。常规的网络层探测显示一切正常。

德里克嘴角似乎向下弯了一下,不知是失望还是觉得理所应当。

德里克点开了“论坛”。页面刷新,一个同样简洁的界面:顶部是留言输入框。

德里克尝试输入一段包含特殊字符和HTML标签的文本:

点击“提交”。

页面刷新,德里克输入的文本原封不动地显示了出来,那些标签没有被解释执行,而是作为纯文本安全地展示着。

显然,输入过滤做得滴水不漏。

德里克眼神专注了几分。德里克尝试访问常见的后台路径猜想:……统统返回404 Not Found。标准的403 Forbidden都没有,直接就是不存在。

德里克又尝试在URL后添加 .. 进行路径遍历攻击,服务器同样返回404,没有泄露任何目录结构信息。

德里克微微蹙眉,切换回终端。这次的目标是端口扫描

针对服务器IP的常用端口扫描(80, 21, 22, 23, 25…)结果很快返回:除了(80端口)开放,其余常见服务端口(FTP, SSH, Telnet, SMTP)全部关闭。

堡垒机般严密的入口。

德里克的身体微微前倾,这是他进入状态的表现。

德里克尝试向80端口发送非协议的畸形数据包,试图触发服务器错误,期望在错误信息中泄露系统或软件版本。

然而,服务器异常“顽固”,对于不符合规范的请求,要么直接断开连接,要么返回一个极其简洁、标准化的400 Bad Request错误页面,没有任何多余信息泄露。

没有Server头,没有PHP版本,没有Apache标识……一片空白。

教室里安静得只剩下德里克键盘的敲击声和他旁边那台笨重CRT显示器的嗡鸣。

其他学生,包括之前嘲笑谢尔顿的那些人,都屏息凝神地看着。

那个壮硕的运动男斯托米,脸上看好戏的表情早已消失,取而代之的是难以置信的凝重。

斯托米凑到旁边一个同伴的屏幕前,看着对方徒劳地尝试各种攻击,低声咒骂:“见鬼,这小孩用的什么服务器?铁桶吗?”

德里克的眼神变得锐利如鹰隼。德里克放弃了常规路径,开始构造极其复杂的请求头,尝试缓冲区溢出攻击。

超长的URL,畸形的Header字段,精心构造的溢出字符串……手指在键盘上化作一片残影,敲击声密集如雨。

屏幕上黑色的命令窗口里,代码瀑布般滚动。

时间一分一秒过去。五分钟。十分钟。

德里克额角渗出细密的汗珠,在灯光下微微反光。

德里克紧抿着嘴唇,下颌线绷紧。屏幕上的攻击代码越来越复杂,越来越偏离常规,但服务器的回应始终如一:沉默的断开连接,或者那个冰冷简洁的400错误。

“砰!”

一声闷响打破了紧绷的寂静。

德里克身旁那个一直尝试暴力破解FTP端口、搞得自己满头大汗的同伴,终于失去了耐心,狠狠一拳砸在自己的键盘上。

塑料键帽飞溅起来,又噼里啪啦地落下。

他猛地推开椅子站起来,椅子腿在水泥地上刮出刺耳的噪音,脸涨得通红,对着讲台方向吼道:“这根本就是个死胡同!小鬼,你服务器藏哪儿了?物理地址在哪儿?有种说出来!”

这声怒吼像点燃了引线。教室里压抑的挫败感瞬间找到了宣泄口。

“就是!只开个80端口,其他全封死,玩密室逃脱呢?”

“前端干净得像被舔过!连个注入点都找不到!”

“错误信息屁都没有!服务器是哑巴吗?”

“这破网站到底怎么做的?用的什么鬼技术?”

抱怨和咒骂声此起彼伏,之前的轻视早已荡然无存,取而代之的是浓重的焦躁和一丝不易察觉的、被技术碾压的惶恐。

所有人的目光,无论是愤怒的、挫败的还是依旧带着审视的,都像探照灯一样聚焦在讲台上那个小小的但又自信的身影上。

谢尔顿站在那里,那双蓝眼睛却亮得惊人。

谢尔顿听着此起彼伏的抱怨和质问,看着一张张写满挫败的脸。

一种纯粹的、近乎本能的、因智力优越感而产生的兴奋感攫住了谢尔顿。

谢尔顿微微歪着头,脸上浮现出那种让佩吉心头警铃大作的天真又欠揍的表情,仿佛真的在思考一个极其简单的问题。

谢尔顿伸出手,习惯性地推了推不存的眼镜,用他那清亮的、带着点疑惑的童音,清晰地盖过了教室里的喧嚣:

“漏洞?很难找吗?”谢尔顿眨巴着大眼睛,目光扫过德里克汗湿的额头、斯托米铁青的脸、还有那个砸了键盘的家伙颤抖的手,“我花了半年时间搭建这个网站,完善它的基础防护。

大部分时间都在研究怎么让它更安全。”

谢尔顿顿了顿,似乎觉得自己的话还不够清晰,又认真地补充了一句,每一个字都像小锤子敲在那些高年级生脆弱的技术自尊上:

“你们……真的觉得这很难?”

死寂。

比之前的任何一次安静都要彻底。空气仿佛变成了凝固的铅块,沉沉地压在每个人的胸口。

砸键盘那男生的拳头还僵在半空,脸上的怒红瞬间褪去,变得惨白。

斯托米张着嘴,像一条离水的鱼,喉咙里发出嗬嗬的声响,却吐不出一个字。

德里克敲击键盘的手指彻底僵住了,德里克缓缓抬起头,那双锐利的眼睛里第一次出现了清晰的裂痕——不是愤怒,是一种更深层次的、被某种纯粹认知差距击中的茫然。整个教室,只剩下机器风扇低沉的嗡鸣,衬得这寂静愈发震耳欲聋。

“噗嗤……”

一声极力压抑却还是泄露出来的轻笑,打破了这令人窒息的沉默。

是佩吉。

佩吉赶紧用手捂住嘴,肩膀却控制不住地微微耸动。

佩吉飞快地低下头,假装看自己放在膝上的便携机——一台小巧的东芝T2200SX。

屏幕亮着,上面并非课堂笔记,而是一个简洁的终端窗口,绿色的字符正快速滚动刷新

最新网址:m.biquw.cc
本章换源阅读