|
某次渗透测试中,下列项甲方安全团队自信地告诉我:“我们过滤了尖括号和引号,属于XSS绝对打不进来。站脚”我笑了笑,本漏在搜索框输入了半角引号,洞危页面直接弹出了alert(1)。下列项他们忽略了属性值闭合和事件触发点,属于但更讽刺的站脚是,他们以为XSS的本漏危害只是弹个窗。 XSS真正的洞危杀伤力从来不在弹窗。它能偷走用户的下列项会话令牌——你登录银行、邮箱、属于OA系统后,站脚浏览器里存着那个小小的本漏Cookie,XSS脚本像扒手一样把它摸走。洞危攻击者拿着令牌,不需要密码就能以你的身份登录,改密码、转账、发邮件,一气呵成。我见过某电商平台因为一个商品评论区的存储型XSS,后台被批量抓取了用户收货地址和手机号,那场面比数据库被拖库还难看——因为数据是“合法”流出去的,审计日志里全是正常操作。 还有键盘记录。XSS脚本可以监听你输入的所有内容,包括密码、验证码、支付密码。你以为自己在输入框里打的是隐私,实际上每个按键都在被实时回传给攻击者服务器。更隐蔽的是,它可以篡改页面内容——你看到的转账收款人姓名是“张三”,实际后台提交的却是攻击者的账户。对,就是中间人攻击的浏览器版,受害者全程盯着屏幕,却眼睁睁看着钱流进别人口袋。 这些危害都建立在“浏览器信任网站”的基础上。XSS利用的就是这份信任,它让你的浏览器变成肉鸡,替攻击者发起请求。比如CSRF(跨站请求伪造)常和XSS配合:用户已登录某论坛,XSS脚本在后台悄悄发帖、删帖、改管理员权限,用户毫不知情。更狠的是,攻击者可以用你的身份去请求其他站点——你登录着阿里云控制台,脚本就调API创建一台挖矿虚拟机,账单月底才来,到时候你连哭都找不着调。 但题目问的是“哪一项不属于”。我见过有些安全教材把“服务器文件读取”归为XSS危害,这纯属瞎扯。XSS运行在客户端浏览器,它的触手伸不进服务器文件系统。服务器上的配置、源码、数据库备份,那是文件包含或目录遍历漏洞的活儿。XSS顶多让你的浏览器去访问那些文件——但前提是目标服务器本身允许未授权访问,那根本轮不到XSS来背锅。 还有人把“服务器宕机”也算进来。XSS能发起大量请求,确实可能拖垮服务器,但那是DoS攻击的范畴,不是XSS的固有属性。一个XSS脚本能做的,只是借助浏览器向服务器发请求,频率受限于浏览器并发限制和网络条件,真要把服务器打死,不如直接打SYN Flood。硬扯在一起,就像说菜刀能杀人,所以卖菜刀的都算谋杀犯——工具和目的得分开看。 所以,如果选项里有“读取服务器本地文件”或“导致服务器物理损坏”,那才是正确答案。XSS危害集中在客户端——账号劫持、数据窃取、页面篡改、键盘记录、钓鱼伪造,全是浏览器里的事。它是个聪明的扒手,不是撬保险柜的悍匪。搞明白这个边界,做防护时才能对症下药:输入过滤是基础,输出编码是关键,HttpOnly和CSP是防线,但永远别指望弹窗被禁了,XSS就无害了。 |