通过分析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 请求来删除它。
这意味着可以添加/删除网站上任何视频的链接,而无需任何用户交互!
如果你是一个长期主义者,欢迎加入我的知识星球(优先查看这个链接,里面可能还有优惠券),我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款
笔者自己录制的一套php视频教程(适合0基础的),感兴趣的童鞋可以看看,基础视频总共约200多集,目前已经录制完毕,后续还有更多视频出品
https://space.bilibili.com/177546377/channel/seriesdetail?sid=2949374
技术交流请加笔者微信:richardo1o1 (暗号:growing)
回复extension可以获取插件链接