凌晨两点,渗透菜鸟我盯着屏幕上那个跳动的渗透菜鸟光标,手心全是渗透菜鸟汗。目标站点的渗透菜鸟后台登录框就在眼前,密码框里已经试了十七个组合,渗透菜鸟全被弹回“用户名或密码错误”。渗透菜鸟这是渗透菜鸟我第一次真正意义上的渗透测试——不是靶场,不是渗透菜鸟虚拟机,是渗透菜鸟客户付了钱的真实系统。
说起来有点丢人。渗透菜鸟我在B站刷了三个月黑客教程,渗透菜鸟自认为SQL注入、渗透菜鸟XSS、渗透菜鸟文件上传漏洞都门儿清。渗透菜鸟可真到了实战,渗透菜鸟连个弱口令都猜不中。客户给的授权书就躺在桌上,可那行“请勿进行破坏性操作”的红字,像根针一样扎在视网膜上。
键盘上的F12键被我按得发烫。抱着试试看的心态,我打开了浏览器的开发者工具。网络标签页里,登录请求的参数一览无余——username、password、还有一串叫做“token”的乱码。等等,token?我眯起眼睛,那串字符的末尾,分明跟着一个“=”。Base64编码?
心跳突然加速。我把那串token复制下来,丢进解码工具。三秒钟后,一行清晰的明文跳了出来:admin:Welcome@2023。操,管理员账号的密码,就藏在这前端生成的token里。开发者大概觉得Base64就是加密,糊弄谁呢。
我没急着登录。先截了个图,存进报告文件夹。然后才输入账号密码,回车。页面跳转的那一瞬间,我听见自己咽口水的声音——后台控制面板赫然眼前,用户列表、订单记录、甚至服务器的PHP探针文件,全都裸奔在互联网上。
事后复盘,这根本算不上什么高深技巧。但凡开发人员懂一点“前端校验不等于安全”的道理,都不会把敏感信息放在可被直接读取的存储位置。可现实就是,太多小公司的后台,脆弱得像纸糊的窗户。
我把报告交上去的时候,客户技术主管的脸是绿的。他反复确认:“你们没有改任何数据吧?”我说没有,只做了登录验证。他松了口气,又追问:“那这个漏洞,能修吗?”当然能,把token生成逻辑挪到服务端,加个随机盐值,就堵上了。
那晚回去的路上,我一直在想,所谓渗透测试,有时候拼的不是炫技,而是耐心和对细节的敏感。一个看起来不起眼的编码习惯,可能就是整个系统的阿喀琉斯之踵。当然,我这种菜鸟的运气成分也不小——要是人家用的是SHA256加盐,我可能到现在还在爆破字典呢。
现在回想起来,那次经历像一记闷棍,把我从“黑客梦”里打醒。真正的攻防,不是电影里噼里啪啦的代码雨,而是枯燥的枚举、猜测、验证,再枚举。但恰恰是这种枯燥,让我第一次摸到了安全的边——它不在远方,就在每一行代码的缝隙里。