下列选项中不属于Web漏洞的下列选项是
先看一道经典面试题:“以下哪个不属于Web漏洞?” 选项通常是SQL注入、XSS、属于CSRF、下列选项DDoS。属于不少人会犹豫,下列选项甚至选错。属于答案其实是下列选项DDoS——它属于网络层攻击,而非Web应用层漏洞。属于但问题远不止一个答案那么简单。下列选项
SQL注入和XSS是属于教科书级别的Web漏洞,几乎每个写后端的下列选项人都被它们折磨过。SQL注入的属于本质是数据与代码没分离,你把用户输入拼进SQL语句,下列选项结果人家输入了' OR 1=1 --,属于你的下列选项数据库就裸奔了。XSS则是把用户输入当HTML或JS执行,攻击者能偷Cookie、改页面、模拟操作。这两兄弟是Web漏洞的“原住民”,从2000年初的论坛时代就存在,至今还在OWASP Top 10里占着坑。
CSRF稍微隐蔽些。它不直接攻击你的代码,而是利用浏览器的自动携带Cookie机制,诱导用户点击恶意链接,从而以用户身份发请求。比如你登录了银行网站,攻击者发给你一个,浏览器自动带上你的会话,钱就转走了。这算Web漏洞,因为它属于Web应用的逻辑缺陷——没有校验请求来源。
那DDoS呢?分布式拒绝服务攻击,靠海量流量挤爆服务器带宽或资源。它不针对任何代码缺陷,不碰你的数据库,不篡改页面,纯粹是“用数量压死质量”。你把服务器搬到云端、加负载均衡、上CDN,这些措施能缓解DDoS,但改代码没用——因为问题根本不在代码里。所以它归类为网络层攻击,不是Web漏洞。但有意思的是,很多公司把DDoS防护归到安全团队,和Web漏洞一起管,导致概念混淆。
还有个更坑的选项:“文件上传漏洞”。有人会以为它不算Web漏洞,因为涉及服务器文件系统。错了,文件上传漏洞真真切切是Web漏洞,而且很致命——攻击者传个PHP马上去,直接拿到webshell。它属于Web应用对输入校验不严导致的代码执行问题,和SQL注入同根同源。
再看一个冷门的:“HTTP参数污染”。它算Web漏洞吗?算,但很多人忽略。攻击者通过提交重复参数名,绕过WAF或触发逻辑错误。比如?id=1&id=2,后端取哪个值?不同服务器行为不同,可能造成越权。这类漏洞不常见,但真实存在,而且很难自动检测。
回到开头那道题。如果面试官把选项换成“XSS、CSRF、文件上传、DDoS”,答案还是DDoS。但如果你遇到“SQL注入、命令注入、XXE、暴力破解”呢?暴力破解也不算Web漏洞——它是针对认证机制的暴力尝试,属于业务逻辑或口令安全问题,但通常归类为“暴力攻击”,而XXE(XML外部实体注入)确实能读取服务器文件,算Web漏洞。
判断标准其实很直接:漏洞是否由Web应用自身的设计或实现缺陷导致。SQL注入、XSS、CSRF、文件上传、XXE、SSRF,这些全是应用层问题,改代码能修。DDoS、暴力破解、网络嗅探,这些是外部攻击手段或环境问题,改代码修不了,得靠架构调整或运维手段。但别死记硬背——实际渗透测试里,DDoS和暴力破解经常和Web漏洞一起出现,比如攻击者先暴力破解登录,再上传webshell。边界模糊时,看“根因”而非“现象”。
最后留个思考:点击劫持算不算Web漏洞?它利用iframe透明覆盖,诱骗用户点击。不涉及代码执行,但属于UI红鲱鱼攻击,OWASP把它列进“客户端漏洞”。你说它算不算?我的判断是——算,因为它依赖Web页面的展示逻辑缺陷,而且能通过X-Frame-Options头修复。所以下次再遇到类似题,别急着选“网络攻击”,先想想这个漏洞能不能通过修改Web应用代码或配置来防御。能,就是Web漏洞;不能,才是“其他”。
