游客发表
去年某电商平台被拖库,见漏攻击者用的见漏不是什么零day,就是见漏一个再普通不过的SQL注入。说出来你可能不信,见漏都2024年了,见漏这种漏洞还在一线收割数据。见漏问题出在哪?见漏开发图省事,直接把用户输入拼进查询语句。见漏一个单引号就能让整个数据库裸奔。见漏
SQL注入的见漏本质是代码和数据没分家。比如登录框里输入 ' OR 1=1 --,见漏后端如果拼出 SELECT * FROM users WHERE name='' OR 1=1 --',见漏认证直接绕过。见漏修复也简单,见漏参数化查询,见漏别拼字符串。但偏偏有人觉得“我过滤了单引号就安全”,结果宽字节注入、二次注入照样打穿。
XSS更常见。你刷微博看到一条评论,鼠标一悬停就弹窗,那就是存储型XSS。攻击者把 <script>alert(1)</script> 写进评论区,服务器没转义就存库了。每个访问该页面的用户都会执行这段脚本。有人用它偷Cookie,有人直接伪造登录框钓密码。防御分三层:输入过滤、输出转义、CSP头。但很多前端框架默认转义,开发者反而放松警惕,在 v-html 或 dangerouslySetInnerHTML 里塞用户内容,一塞一个准。
CSRF这玩意儿容易被忽略。你登录了网银,然后手贱点开一个“美女直播”链接,页面里藏了个表单,自动向 bank.com/transfer?to=黑客&amount=10000 发请求。浏览器带着你的Cookie就去了,钱没了。防御靠Token和SameSite Cookie。但有些老系统还在用Referer校验,Referer一被篡改或者用户禁用了,直接失效。
文件上传漏洞更直接。某政府网站允许上传头像,没校验后缀。攻击者传了个 shell.php,路径还回显在响应里。连上去就是 whoami,服务器归他了。有人觉得“我改了Content-Type就安全”,但抓包改回来就行。正确做法是白名单后缀、重命名文件、存到非Web目录。别用黑名单,php5、phtml、php. 这些绕过手法能写满一页纸。
SSRF这两年因为云服务火起来了。攻击者让服务器去请求 http://169.254.169.254/latest/meta-data/,AWS的元数据接口,直接拿到临时凭证。然后横向移动,控制整个云账号。很多图片加载、Webhook回调、PDF生成功能都有这问题。防御就一条:限制请求目标,别让用户控制URL的host。
还有个反直觉的:越权。不是技术漏洞,是逻辑漏洞。你改一下URL里的 user_id=123 成 user_id=124,就能看到别人的订单。水平越权。改成 admin_id=1 就是垂直越权。很多API只验证了“登录了没”,没验证“这资源是不是你的”。修复得在每个接口里查归属,别偷懒。
这些漏洞年年上OWASP Top 10,不是没原因。开发节奏快,安全卡点往后放。但攻击者不跟你讲道理,一个注入点就能把整个库拖走。我的建议就一条:把安全左移,代码提交时跑SAST,上线前跑DAST,别等出了事再补。
友情链接