休闲

Web漏洞

时间:2010-12-5 17:23:32  作者:热点   来源:焦点  查看:  评论:0
内容摘要:2017年Equifax被拖走1.43亿条信用记录,入口只是一个没打补丁的Apache Struts2。事后复盘,安全团队其实收到了CVE通报,但资产台账里压根没登记那台服务器。漏洞本身不新鲜,真正致

2017年Equifax被拖走1.43亿条信用记录,入口只是一个没打补丁的Apache Struts2。事后复盘,安全团队其实收到了CVE通报,但资产台账里压根没登记那台服务器。漏洞本身不新鲜,真正致命的是"不知道它存在"。这件事说明一个问题:Web漏洞的杀伤力,往往不取决于技术多高明,而取决于你对自己系统的无知程度。

SQL注入是最老的Web漏洞之一,老到很多人觉得它已经过时了。现实是它常年霸占OWASP Top 10。原理简单得离谱——用户输入被当成SQL代码执行了。一个登录框,输入 ' OR 1=1 --,后端如果直接拼接字符串查询,认证就绕过去了。防御方法也简单:参数化查询。但为什么二十年了还在出?因为老代码没人敢动,新框架用ORM以为万事大吉,结果ORM里写了原生SQL拼接。

XSS(跨站脚本)分三种:存储型、反射型、DOM型。存储型最危险——攻击者把恶意脚本存进数据库,所有访问该页面的用户中招。我见过一个案例:某电商平台的商品评论区,有人提交了一段 <script> 标签,页面渲染时没做转义,结果每个看评论的人cookie都被偷走。修复方式不是过滤 <script>,而是输出编码。过滤黑名单永远会被绕过,编码才是正路。

文件上传漏洞经常被低估。开发觉得"我限制了后缀名就安全了"。但 shell.php.jpg 在某些解析配置下照样当PHP执行。更别提Content-Type可以伪造,文件名里的空字节截断在某些老版本里依然有效。真正的修复是:上传目录禁止脚本执行权限,文件重命名,存到独立域名或对象存储里。别指望前端JS校验,那东西改个包就绕过了。

SSRF(服务端请求伪造)这几年越来越受重视,因为云环境让它变得极其危险。攻击者让服务器去请求内网地址,比如 http://169.254.169.254/latest/meta-data/,就能拿到云主机的临时凭证。Capital One那起泄露就是SSRF加WAF配置不当。防御SSRF比防SQL注入难,因为你需要维护白名单、限制协议、禁止重定向,还得防DNS rebinding。很多团队干脆不做,赌没人发现。

CSRF(跨站请求伪造)的本质是浏览器自动带cookie。攻击者在自己的页面上放一个隐藏表单,指向银行转账接口,用户只要登录着银行,打开攻击页面就中招。防御靠CSRF Token和SameSite Cookie属性。SameSite=Lax现在浏览器默认开启,救了一大片网站,但老系统没设这个属性的,依然裸奔。

说个真实观察:大部分Web漏洞被利用,不是因为攻击者多厉害,而是因为开发者假设"用户不会那样输入"。这个假设在安全领域永远不成立。输入验证要做,但输出编码和参数化查询才是底线。别把安全寄托在WAF上,WAF能挡脚本小子,挡不住针对你业务逻辑精心构造的payload。

漏洞管理不是买个扫描器跑一遍就完事。扫描器能发现已知模式的漏洞,但业务逻辑漏洞——比如越权查看他人订单、修改价格参数——扫描器基本无能为力。这部分只能靠代码审计和手动测试。而现实是,很多团队连资产清单都不全,谈何测试。

最后说个数字:根据Verizon的DBIR报告,Web应用攻击中超过80%涉及凭证滥用或漏洞利用,而漏洞利用里,大部分针对的是已知但未修补的漏洞。也就是说,你不需要防御所有0day,你只需要把已知的补丁打上、把输入输出处理干净、把权限边界画清楚。做到这三点,你已经比大多数网站安全了。

最近更新
热门排行
copyright © 2026 powered by 力不从心网   sitemap