凌晨两点十七分,漏洞我盯着屏幕上的小网报错日志,第无数次刷新那个测试页面。漏洞403。小网又是漏洞403。这个漏洞小网站,小网连错误提示都透着一股敷衍的漏洞傲慢。
事情得从三天前说起。小网朋友的漏洞公司买了个二手域名,原主人是小网个做同城二手交易的,网站早黄了,漏洞但后台还留着。小网他们想改造成内部工具站,漏洞结果发现后台登录接口有个天大的小网笑话——密码校验逻辑是前端JavaScript写的,直接看源码就能绕过。漏洞我试着在地址栏敲了一行代码,回车,进去了。
后台管理界面丑得让人心疼。深蓝色背景配荧光绿按钮,像是2008年的个人主页。数据表里躺着几万条用户注册信息,最新的日期停在2019年。有个用户的收货地址写着“XX小区3栋2单元”,手机号是空号,我试着拨过去,语音提示“您拨打的号码已停机”。这些数据像被主人遗弃的旧家具,积了灰,但木头纹理还在。
漏洞不止这一个。文件上传接口没做类型限制,我传了个伪装成jpg的PHP文件,服务器直接执行了。更绝的是,后台有个“导出所有用户数据”的按钮,点一下就能打包下载,连个二次确认都没有。这网站当年大概是个练手项目,做完了就扔在服务器上,没想过会有陌生人摸进来。
我花了半小时把漏洞整理成报告,发给朋友。他回复:能修吗?我说能,但得先把那套老代码重写。他沉默了一会儿,说预算有限,先封了入口吧。我理解,小公司嘛,生存要紧,谁顾得上给一座快塌的危房做全面加固。
但这事儿让我想起另一件事。去年有个做教育培训的客户,官网被黑了,首页被换成赌博广告。技术员排查了半天,发现漏洞根源是一个三年前就停止维护的插件。那个插件在官方公告里早就标注“请勿使用”,但他们的技术外包团队一直没更新过。你说气不气?可生气归生气,类似的事每天都在发生。漏洞小网站就像城市里的老旧平房,住着的人知道墙皮会掉、电线会冒火星,但真要掏钱翻修,总觉得“还能再撑一阵”。
我最后把那个二手网站的数据库备份了一份,删掉了测试时上传的文件,关掉了后台的弱口令。走的时候,看到登录页面上还留着原开发者的签名——“by 小李,2017年秋”。小李现在大概已经转行了吧,也许在做直播带货,也许在送外卖。他大概做梦也想不到,当年随手写的代码,会在五年后被一个陌生人翻出来,像考古一样研究。
漏洞小网站不死,它们只是换着法子活在你的忽略里。直到某天有人轻轻一推,门就开了。