JS文件FUZZ测试,实现国外政府网站越权

admin 2024年10月22日21:35:10评论20 views字数 1249阅读4分9秒阅读模式
正文部分

动态加载的 JavaScript 文件

我首先查看了该网站的js文件,它是基于 React 构建的,许多终端节点都可以在客户端访问。在 JavaScript 文件中发现一些漏洞后,我尝试使用各种方法收集更多文件,但结果是空的

Tips:当打开一个网站并检查开发工具时,可以看到浏览器加载的 js 文件。但是这种js在某些情况下并不是完整的,由于现在的网站的发展,为了保证用户的访问速度,很多js都是在触发某种功能的时候才会进行动态加载的(这种这种情况可以根据 HAE 去实现不同情况的提取

JS文件FUZZ测试,实现国外政府网站越权
https://github.com/gh0stkey/HaE

JS文件FUZZ测试,实现国外政府网站越权

但是这里使用的是另一种方式,JavaScript文件的fuzz

我注意到文件名中有一个模式,比如 users.js、customer.js 和 static.js。这给了我一个想法:如果我尝试对 JavaScript 文件名进行模糊测试怎么办?

JavaScript 文件模糊测试

我们大多数人都熟悉路径猜测或模糊测试,但你有没有想过将模糊测试应用于 JavaScript 文件?

在注意到文件命名模式后,我根据网站的性质编制了一份可能的 JavaScript 文件名列表。在 ChatGPT 和 RSMangler 的帮助下,我为该网站创建了一个js字典。

https://github.com/digininja/RSMangler

JS文件FUZZ测试,实现国外政府网站越权

我运行了模糊测试过程,我发现了一个名为 Reports.js 的新的js文件。

JS文件FUZZ测试,实现国外政府网站越权

存在特征的 UUID 导致越权

在 Report.js 中,我在客户端找到了一个终端节点,它允许我通过 API 请求修改我自己的政府文件

JS文件FUZZ测试,实现国外政府网站越权

在检查 API 请求时,我在路径中看到了 RequestId 等参数,在 JSON 正文中看到了 id 等参数。很明显,后端使用 UUID 来识别用户请求。我很好奇更改 UUID 是否可以让我更改文档。因此,我创建了第二个帐户,获取了它的 UUID,并尝试使用我的第一个帐户更新它。我能够做到这一点,这表明存在越权漏洞。但是,由于 UUID 通常是不可猜测的,因此可能无法直接利用

但我并没有就此止步。我进一步研究了 UUID 的结构,因为有时可能会出现配置错误。我发出了几个请求,并为不同的请求提取了 UUID 值。令我兴奋的是,我注意到所有 UUID 都遵循特定的模式,例如:

f6b168b5-A805-ef11-A832–005056066af7
13a6d3c4-ab05-ef11-a832–005056066af7
972a6aad-ab05-ee11-a832–005056066af7
b542816d-ab05-ef11-A832–005056066af7

根据对比发现,所有 UUID 都遵循相同的模式,除了第一段是可变的。我很高兴地发现 UUID 模式在所有账户中都是一致的!

有了这些信息,我只需猜测 UUID 的第一部分,就可以为任何人更新任何政府文件。由于 API 没有速率限制,这使得这个过程非常简单

 

原文始发于微信公众号(fkalis):【海外SRC赏金挖掘】JS文件FUZZ测试,实现国外政府网站越权

 

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月22日21:35:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   JS文件FUZZ测试,实现国外政府网站越权http://cn-sec.com/archives/3301634.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息