从图片上传到工作区接管:解析一次关键的存储型 XSS 攻击

53 阅读2分钟

官网:http://securitytech.cc/

从图片上传到工作区接管:解析一次关键的存储型 XSS 攻击

这张“图片”入侵了公司工作区

一个看似无害的功能——文件上传——在 Dust 平台的最近一次漏洞中,成为了完全接管工作区的入口。此案例提醒我们,经典的存储型跨站脚本(Stored XSS)漏洞,结合架构疏忽,可能导致严重后果,包括权限升级和完全的管理控制。


攻击链解析 ⛓️

此次攻击的巧妙之处在于其简单性,以及将几个看似微小的漏洞串联成高影响的利用链。它不需要复杂代码或密码窃取,只需要用户点击一个链接即可。

按回车或点击查看全尺寸图片

攻击链:从一次点击到全面接管

分步解析如下:

  1. 伪装的恶意文件上传:攻击者以低权限成员身份登录,上传了名为 xss_poc.png 的文件,但请求被篡改,将 Content-Type 设置为 text/html。系统验证未能发现这一不匹配,优先使用声明的内容类型而非文件扩展名。
    1. 同源托管:上传的 HTML 文件被托管在主应用域名 (dust.tt) 下。这是关键错误。用户生成内容与核心应用同源,允许文件内的任意脚本在应用的信任安全上下文中执行。
    1. 诱饵:攻击者将上传文件的直接 URL 分享给工作区管理员。管理员看到的只是同事共享的一张图片链接。
    1. 静默执行:当管理员访问链接时,浏览器没有渲染图片,而是识别 text/html 类型并执行文件中的 JavaScript。由于脚本在 dust.tt 域下运行,它自动继承了管理员的会话权限。
    1. API 驱动接管:JavaScript 有意静默调用 API。它首先获取工作区 ID,然后向管理成员的 API 发送 POST 请求,将攻击者账号提升为“管理员”角色。操作在后台无声进行,使用受害者的活跃会话,管理员完全不知情。