大家都知道,如果要挖掘JS中的敏感信息,第一步就是认识JS中哪些属于敏感信息,或者是间接可以利用造成敏感信息泄露的内容。
敏感信息可能包括(但不限于):私有API密钥(例如,无限制的Google地图API密钥)、前后端交互的方法(加解密、传参等)、敏感路由(例如,隐藏的管理页面或功能的路由)甚至凭据。这些敏感信息可能从前端JavaScript代码中泄露。
在某些情况下,测试者可能从JavaScript代码中找到敏感路由,例如链接到内部(内网地址)或隐藏管理页面的路径。
如下案例中泄露ueditor配置文件地址
同样是一个未授权文件上传案例,js中泄露了请求路径和请求头,造成文件上传
此外还有未授权的敏感路由的案例,如下js中泄露网页地址
当发现API密钥时,测试人员可以检查API密钥的限制是否按服务、IP、HTTP引用来源、应用、SDK等进行了设置。
例如,如果测试人员找到了一个Google地图API密钥,他们可以检查这个API密钥是否按IP进行了限制,或者是否仅限于Google地图APIs使用。如果Google API密钥仅限于Google地图APIs使用,攻击者仍然可以利用该API密钥查询未受限制的Google地图APIs,而这将导致应用所有者必须为此付费。
这意味着即使API密钥在某个特定服务内受到限制,如果它能够访问其他未加限制的服务,那么它仍可能被滥用,造成经济损失或数据泄露。测试人员需要确保API密钥的使用范围被适当地限定,以防止未经授权的访问和使用。
例如:
<script type="application/json">
...{"GOOGLE_MAP_API_KEY":"AIzaSyDUEBnKgwiqMNpDplT6ozE4Z0XxuAbqDi4", "RECAPTCHA_KEY":"6LcPscEUiAAAAHOwwM3fGvIx9rsPYUq62uRhGjJ0"}
...
</script>
除了谷歌地图,国内的百度、腾讯、高德等地图泄露API key也可以进行利用。
云服务器AK、SK
js中还会泄露敏感信息,一般以身份证这类居多,如下示例中就泄露了身份证、学号等信息
亦或是直接在JS中泄露身份证信息的,泄露驾驶证号码等于是泄露身份证号
比如输入账号密码,抓包却发现密码被加密了,这个时候不要放弃,可以去js中搜索关键字password进行断点追踪。追踪handleLogin方法
查看加密方法,密码为明文+_IntSig字符串,之后进行md5加密
测试输入同样的加密方法,得到结果和js中所看到的一致
原文始发于微信公众号(FreeBuf知识大陆APP):JS敏感信息挖掘实战案例分享(文末送蓝牙音箱耳机)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
点赞
https://cn-sec.com/archives/3635756.html
复制链接
复制链接
-
左青龙
- 微信扫一扫
-
-
右白虎
- 微信扫一扫
-
评论