游客发表
凌晨两点,代码地球我盯着屏幕上的黑客终端窗口,光标在第七行代码末尾闪烁。代码地球那是黑客个简单的JavaScript片段,只有三行,代码地球却能让浏览器标签页像心脏病发作一样抽搐。黑客我按下回车,代码地球CPU占用率瞬间跳到97%,黑客风扇哀嚎起来。代码地球这就是黑客我理解的“黑客地球”——不是电影里那种炫酷的绿字瀑布,而是代码地球用最基础的HTML标签,在别人眼皮底下撬动整个系统的黑客支点。
你见过用纯HTML写的代码地球攻击吗?没有PHP,没有SQL注入,黑客就靠一个标签。代码地球去年某家银行的内网系统栽在这上面——攻击者把图片的src属性改成了内网IP的特定端口,当审核人员的浏览器尝试加载图片时,请求直接打到了防火墙后面的监控摄像头上。没人注意那个404报错,但日志里多了一串不该存在的访问记录。这让我想起小时候用记事本改网页标题吓唬同学的日子,原来过了二十年,原理还是那一套:浏览器信任你给的每一个标签,就像你信任每天走的那条路。
真正的危险藏在最平常的代码里。我认识一个白帽子,他最爱干的事是翻看政府网站的HTML源码,找那些被注释掉的调试信息。有次他在某市级官网的页面源码里发现一行,顺着这行注释摸进了后台,发现整个市民数据库的备份文件就放在web根目录下的backup文件夹里。他没动手,只是截图发了条朋友圈:“最坚固的堡垒往往从内部HTML标签开始瓦解。”配图是那行注释的代码截图,点赞的人里有两个是同行,都回复了狗头表情。
有人觉得我在夸大其词。毕竟HTML只是标记语言,连脚本都算不上。可你想想,钓鱼网站为什么能骗过90%的人?不是因为他们用了多高深的XSS攻击,而是把登录框做得和原版一模一样——就是复制了HTML结构,改个提交地址。上个月我收到一封“社保局”邮件,点开链接,页面字体、排版、甚至页脚的备案号都分毫不差。我查看源代码才发现,对方连CSS文件都直接引用的官方CDN,唯一的破绽是表单action指向了一个.ru域名。这年头,黑客早就不写代码了,他们只是搬运工,搬的就是HTML。
写到这里,我随手打开一个银行网站,按F12调出开发者工具。在Console里敲下document.cookie,一行加密字符串跳出来。我把它复制到文本编辑器里,看着那串字符发呆——这就是我在这个世界上的数字指纹。浏览器把HTML解析成DOM树的时候,我的每一次点击、每一次输入都变成了节点属性。黑客不需要攻破服务器,只需要在这棵树的某片叶子上做个记号,就能顺着树根摸到整个森林。这就是HTML的魔法,它让全世界的信息都长在同一棵树上,而枝桠间的缝隙,永远比树干本身更值得研究。
关掉开发者工具,屏幕恢复成普通的网页。阳光照进来,页面上的按钮还在闪闪发光。我忽然想起那个用标签打穿银行防火墙的家伙,他现在大概正坐在某个沙滩上,用手机浏览着同样的HTML代码——只不过他的手机屏幕上,显示的是别人家的摄像头画面。这世界就是这样,最危险的地方不是黑暗的角落,而是你每天都要面对的、干干净净的尖括号。
友情链接