通过分析JS源代码发现api漏洞
正文
目标为target.com
,范围为*.target.com
,信息搜集之后,发现前端为react,发现了一个文件夹名字叫web-app,其中包含了前端的源代码!
使用了一个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 属于我上传的视频。
发送请求之后如下:
不知道这个请求在做什么,所以这里打开视频,在它下面发现了一个按钮,如果你点击它,它会将你重定向到一个网站。
还可以通过发出 DELETE 请求来删除它。
这意味着可以添加/删除网站上任何视频的链接,而无需任何用户交互!
原文始发于微信公众号(迪哥讲事):通过分析JS源代码来发现api漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论