通过分析JS源代码来发现api漏洞

admin 2024年1月9日09:46:09评论19 views字数 967阅读3分13秒阅读模式

通过分析JS源代码发现api漏洞

正文

目标为target.com,范围为*.target.com,信息搜集之后,发现前端为react,发现了一个文件夹名字叫web-app,其中包含了前端的源代码!

通过分析JS源代码来发现api漏洞

使用了一个chrome插件来下载源代码(见文末),然后进行代码审计

首先在 JS 文件中寻找 api 接口,找到了一个名为 api 的文件夹,里面包含了大量api接口的文件

将找到的所有api接口保存在一个excel表格中,并开始逐一分析/测试它们,了解它们在应用程序中的作用。

经过大量的测试,发现了两个访问控制漏洞。

1)在target.com上的任何视频上添加和删除按钮:

target.com中有一个上传视频的功能,当我从源代码测试api接口的时候,我发现了这个接口


/v1/videos/<video_id>/cta

在源代码中,该函数如下所示:



export function updateCTA(videoId: string, ctaURL: string, ctaText: string) {
    return getResults(
        appendQuery(`${TARGET_API_URL}videos/${video_id}/cta`, {
            api_key: WEB_API_KEY,
            link: ctaURL,
            text: ctaText,
        }),
        {
            method: ctaText ? 'put' : 'delete',
        }
    )
}

除了web api密钥,这里不需要任何授权参数,因为web api密钥对所有用户都是一样的,尝试创建多个帐户,发现api密钥在所有帐户中都是一样的。

在bp中发送了一个PUT请求来测试它。

在 ${video_id} 中,添加一个视频 ID,该 ID 属于我上传的视频。

发送请求之后如下:

通过分析JS源代码来发现api漏洞

不知道这个请求在做什么,所以这里打开视频,在它下面发现了一个按钮,如果你点击它,它会将你重定向到一个网站。

还可以通过发出 DELETE 请求来删除它。

这意味着可以添加/删除网站上任何视频的链接,而无需任何用户交互!

原文始发于微信公众号(迪哥讲事):通过分析JS源代码来发现api漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月9日09:46:09
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   通过分析JS源代码来发现api漏洞http://cn-sec.com/archives/2376641.html

发表评论

匿名网友 填写信息