我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程

admin 2025年2月28日23:15:35评论11 views字数 1596阅读5分19秒阅读模式
我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程

🎯 介绍

在bug赏金狩猎的狂野世界中,有时您会偶然发现黄金。这是我在同一个程序中发现的两个独立错误的故事,但位于不同的地方。

一个最初是一个看似不可利用的存储型 XSS 漏洞,但通过一点创意,我把它变成了一个开放的重定向。另一个?一个具有良好防御机制的 CSRF 漏洞 — 直到我找到一种巧妙的绕过 .

喝杯咖啡,让我们开始这个双重功能的漏洞赏金冒险吧!

🐞 错误 #1:长度受限的有限存储 XSS

我正在测试一个允许用户输入显示名称的应用程序。经过一番模糊测试后,我发现我的输入被反映在多个页面上,而没有进行适当的清理。甜!但有一个问题:它只允许 16 个字符。这个限制粉碎了我注入经典标签的希望。<script>

🧠我尝试使用的有效负载:

<script>alert(1)</script> 25 chars long
<svgonload=alert()> 20 chars long
我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程

但是,嘿,有志者事竟成!我开始考虑极简的有效载荷。经过一番试验和错误,我找到了这个漂亮的 16 个字符的有效载荷

<ahref=//a.ru>x

这个微小的有效载荷做了两件事:

  1. 创建了一个可点击的 open 重定向到(例如攻击者域)。//a.ru
  2. 规避了字符长度限制,同时仍注入了功能性 HTML 元素。

有了这个,我有一个存储的 XSS,它会导致一个开放的重定向,这意味着我可以诱骗所有用户访问恶意网站。有效负载在目标中的任何地方执行 聊天 、 提要 、 流 这对所有用户都产生了巨大影响

我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程
我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程
我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程

🔒 错误 #2:具有基于反向链接的旁路扭曲的 CSRF

隐藏的缺陷

虽然存储的 XSS 为我提供了一个攻击媒介,但我对应用程序博客部分的探索发现了另一个弱点。用户可以在博客文章上发表评论,但评论提交过程缺乏强大的 CSRF(跨站点请求伪造)保护。该应用程序没有使用安全的 CSRF 令牌,而是仅依赖于检查 Referer 标头来验证请求。

我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程

🧠 想法

完全依赖 Referer 标头是一种有风险的做法,并且会为漏洞利用打开大门。以下是我如何将此缺陷转化为有效漏洞的方法:

我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程
我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程

逐步开发:

  • 制作恶意表单:我在攻击者控制的网站上使用一个短域(小于 6 个字符,例如)构建了一个简单的 HTML 表单。作为概念验证,我通过 hosts 文件将此域映射到我的攻击者 IP。poc.lo
我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程
我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程
  • 绕过 Referer 检查:我将文件重命名为 以绕过应用程序的反向链接检查,从而允许将恶意请求接受为有效请求。dating.target.ru.html
我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程
我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程

并且 exploit 正在按预期工作:

我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程
我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程
我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程

这个 CSRF 缺陷清楚地提醒我们,依赖过时的安全措施(例如单独的 Referer 标头)可能会使应用程序很容易被利用。

给其他猎人的经验教训

  • 接受约束:
    16 个字符的限制等限制会迫使您进行创新。最好的有效载荷往往源于必要性。
  • 不要低估孤立的 Bug:
    每一个漏洞,无论多么小或与其他漏洞分离,都有可能以危险的方式被利用。
  • 现代化安全措施:
    仅依靠 Referer 标头进行 CSRF 保护是不够的。强大的防御措施(例如 CSRF 令牌)是必不可少的。
  • 坚持不懈的回报:
    保持好奇心,不断测试。有时,应用程序中最容易被忽视的部分隐藏着最大的风险。

结论

在不断发展的网络安全世界中,即使是最小的漏洞也可以为创造性思维揭开机会宝库。我的旅程——从制作一个极简的存储 XSS 有效负载到通过巧妙的域作绕过 CSRF 保护——强化了每个错误都是一个等待被讲述的故事。

这次经历告诉我,约束往往会激发创新,而坚持不懈是发现最安全系统中隐藏缺陷的关键。让我们提醒我们:在漏洞赏金猎杀领域,没有漏洞是太小的,每个漏洞都有可能产生重大影响。

保持你的好奇心,保持你的技能敏锐,永不停止探索未知。如果您有自己的事迹要分享,请在下面的评论中加入对话 — 我们可以一起构建一个更安全的数字世界。

祝您狩猎愉快,愿您的漏洞赏金奖励永远对您有利!

原文始发于微信公众号(安全狗的自我修养):我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月28日23:15:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   我从有限的存储XSS到开放重定向和偷偷摸摸的CSRF Referrer Bypass的旅程https://cn-sec.com/archives/3780007.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息