利用CSRF暴力破解用户ID实现批量删除攻击

本文详细介绍了如何通过CSRF漏洞结合用户ID暴力破解技术,实现在缺乏CSRF防护的系统中批量删除所有用户账户的攻击方法,涉及X-Frame-Options绕过和客户端请求伪造等技术细节。

通过CSRF暴力破解用户ID实现批量删除用户攻击

在测试某个应用程序时,发现存在一个"删除用户"模块,管理员可以通过该模块删除任意用户。

图片描述

如果仔细观察请求,会发现删除用户请求中没有实施CSRF令牌/保护机制。这是一个非常容易利用的CSRF漏洞,攻击者可以向管理员发送伪造表单,从应用程序中删除用户。

简单的CSRF概念验证删除用户

图片描述

但再次观察请求,会发现请求中包含用户ID。我面临的挑战是找出应用程序是否在任何端点泄露用户ID,但最终发现不存在用户ID泄露问题。

由于用户ID是5位数字ID,很容易进行暴力破解。

客户端CSRF令牌暴力破解

在研究过程中,我读到一篇博客文章,其中攻击者借助点击劫持技术暴力破解了ID。当我尝试一些CSRF示例时,客户端CSRF令牌暴力破解的想法浮现在脑海中。

现在的挑战是应用程序使用了X-Frame-Options头部,因此我无法将应用程序加载到框架中进行ID暴力破解。

我尝试使用XMLHttpRequest,但应用程序会验证ORIGIN,所以在这种情况下XHR对我不起作用。

然后我尝试将请求发送到iframe目标。在这种情况下,由于响应包含应用程序验证的X-Frame-Option头部,我无法查看响应。但我能够发送请求。

因此我创建了一个CSRF脚本,该脚本可以暴力破解用户ID,并通过CSRF从应用程序中删除所有现有用户。

图片描述

当我将这个PoC发送给受害者(管理员)时,我成功从应用程序中删除了所有现有用户。

图片描述

感谢大家阅读。祝大家有美好的一天。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计