|
拿到那张A4纸的原创时候,我差点没笑出声。漏洞白底黑字,证明证书中央印着烫金的原创“原创漏洞证明证书”,右下角盖着CNVD(国家信息安全漏洞共享平台)的漏洞红章。就这?证明证书我花了三个通宵挖出来的路由器远程代码执行漏洞,换来的原创就是一张纸?可当我把手指按上去,感受那层微微凸起的漏洞防伪纹路时,心里某个地方突然踏实了。证明证书 三个月前,原创我盯着一台吃灰的漏洞老旧路由器发呆。固件版本停留在2019年,证明证书官方早就不更新了。原创按理说这种设备没什么挖掘价值,漏洞可我就是证明证书好奇——那串在web管理界面里被转义了无数次的参数,真的每次都处理干净了吗?抱着“反正没事干”的心态,我把固件丢进binwalk里拆包,开始逐行翻看那些长得像天书的MIPS汇编代码。 第17天凌晨2点47分,我在处理HTTP请求头中“Content-Length”字段的函数里发现了一个整型溢出。那个变量被声明为16位无符号整数,而实际传入的值可以轻松超过65535。当数值溢出回绕成负数后,后续的内存拷贝函数直接拿它当长度参数用了。你猜怎么着?缓冲区溢出,root权限,远程代码执行,一条龙。 验证漏洞的那晚我抽了半包烟。不是激动,是害怕。我反复确认自己写的PoC(概念验证代码)不会真的破坏那台测试设备——万一它变成砖头,我连个实验对象都没了。好在最终只是让路由器上的LED灯全亮成蓝色,像某种诡异的圣诞树。那一刻我突然意识到,所谓“原创漏洞”,其实是一段与机器对话的私人记忆。你记得那个函数名,记得那条跳转指令的偏移量,记得数据包在网络上跑过的每一跳延迟。 后来我把漏洞报告提交上去,审核周期花了整整两周。中间有封邮件问我:“是否同意将漏洞信息在CNVD官网公开?”我犹豫了一下,毕竟这涉及一个尚未完全消亡的设备型号。但转念一想,那些还在用这款路由器的人,可能正光着膀子躺在沙发上刷短视频,浑然不知自己家里有个后门大敞着。公开就公开吧,至少让厂商的压力大一点。 证书寄到的那天,快递员问我这是什么文件。我说:“类似毕业证,但证明的不是学历。”他一脸茫然地走了。我把证书挂在书桌正上方,旁边是去年考砸的CISP成绩单。两者形成一种荒诞的对比——系统漏洞比人类考试更容易被承认价值。 现在偶尔有人问我挖漏洞有什么用。我会指着那张证书说:“它证明我在某个时刻比固件作者更了解他们的代码。”这不是炫耀,只是陈述事实。那张纸本身不值钱,值钱的是我记住的那些深夜——屏幕蓝光映在脸上,键盘上落着烟灰,路由器在桌角发出微弱的散热风扇声。每个漏洞背后都藏着一段这样的孤独时间,而证书不过是给这段孤独盖了个章。 |