面试官问出这道题的下列时候,八成是不属在考你基础概念扎不扎实。别急着背答案,漏洞先想清楚一件事:漏洞的下列本质是“程序行为偏离设计预期”,而web漏洞特指发生在HTTP协议交互过程中的不属那类偏离。SQL注入、漏洞XSS、下列CSRF、不属文件上传漏洞,漏洞这些全都在浏览器和服务器你来我往的下列对话里作妖。但你要是不属把“服务器操作系统被暴力破解”算进web漏洞,那就闹笑话了——那是漏洞系统层的事,跟web应用本身没半毛钱关系。下列
所以答案是不属什么?“服务器CPU温度过高导致宕机”不属于web漏洞。这听起来像句废话,漏洞但真有人栽在这上面。去年我帮朋友排查一个电商站点,后台登录页死活打不开,他一口咬定“肯定被注入了”。结果我爬到机房一看,散热风扇积灰堵死,CPU温度飙到95度,系统自动保护性关机。这算哪门子漏洞?这是物理世界对数字世界的降维打击。
再往深挖一层,你会发现“不属于web漏洞”的范畴其实很宽。比如数据库账号密码直接硬编码在配置文件里,这算安全设计缺陷,但它不属于web漏洞——除非攻击者是通过web应用漏洞把配置文件读出来的。同理,员工把后台密码写在便利贴上贴在显示器旁,这是管理漏洞,跟web协议栈八竿子打不着。还有DNS解析被劫持,用户访问的是假网站,这属于基础设施被攻击,不是web应用自身的问题。
换个角度想,为什么这类题目容易让人纠结?因为现代攻击链早就不是单点突破了。一个典型的攻击路径可能是:攻击者先利用web漏洞上传webshell,再通过webshell提权拿到系统权限,最后在内网横向移动。整个过程里,只有第一步算web漏洞,后面全是系统层和网络层的事。可你要是复盘报告,往往会把整条链都归到“web安全事件”里——这就像把所有交通事故都叫“汽车故障”,显然不严谨。
有个土办法可以快速判断:看攻击载荷是否经过HTTP请求传输。如果攻击者是通过修改URL参数、构造POST数据包、篡改Cookie来达成目的,那就是web漏洞。反过来,如果攻击者是直接SSH爆破、利用Redis未授权访问、或者物理接触服务器,那就不算。哪怕目标是web服务器,只要攻击路径不经过HTTP协议,就别往web漏洞的筐里装。
话说回来,这种“不属于”类题目考的不是记忆力,是边界感。很多开发人员把“网站被黑了”等同于“web漏洞”,其实漏洞只是突破口,后续的权限维持、数据窃取往往用的是系统漏洞。你要是能分清楚这些层次,面试时随口举两个例子,比背一百个CVE编号都有说服力。
最后留个彩蛋——有人会问:“HTTP头注入算web漏洞吗?”算,因为它直接发生在请求头里。那“HTTP头里的User-Agent字段包含恶意字符导致日志系统崩溃”呢?这就不算了,因为崩溃发生在日志处理环节,属于应用逻辑缺陷,攻击载荷虽然走了HTTP,但漏洞点不在web交互本身。你看,边界这玩意儿,永远比想象中更微妙。
