本文发布于552天前,本文最后更新于552 天前,其中的信息可能已经过时,如有错误请留言或评论。
知识点
- JavaScript安全-泄漏配置信息
- JavaScript安全-获取接口测试
- JavaScript安全-代码逻辑分析
- JavaScript安全-框架漏洞检测
了解
- 在Javascript中也存在变量和函数,当存在可控变量及函数调用即可参数漏洞。
- JS开发应用和PHP,JAVA等区别在于即没源代码,也可通过浏览器查看源代码。但是js框架如nodejs和vue在浏览器看不到源代码。
- 获取URL,获取JS敏感信息,获取代码传参等,所以相当于JS开发的WEB应用属于白盒测试,一般会在JS中寻找更多URL地址,(加密算法,APIkey配置,验证逻辑,框架漏洞等)进行后期安全测试。
JS网站面临问题
- 会增加攻击面(URL、接口,分析调试代码逻辑)
- 敏感信息(用户密码、ak/sk、token/session)
- 潜在危险函数(eval、dangerallySetInnerHTML)
- 开发框架类(寻找历史漏洞Vue、NodeJS、Angular等)
AK/SK云安全利用:工具箱CF(云安全后续会讲更多)
打包器Webpack:PackerFuzzer 这个在前面的js信息搜集中有提到,可以跳转去看看
浏览器插件:Pentestkit FindSomething Wappalyzer(前期的JS收集项目)
演示案例
➢JS安全-泄漏配置-SK&AK利用
文件上传可以使用各种语言进行实现,若使用js进行实现,则其acessid/acesskey可能会泄露,可以在页面加载的js中搜索关键字,发现后使用网上的工具进行连接即可进行后续操作。
演示网站:追忆传奇https://mir170.com/
- 这个网站加载的js中直接搜索关键字access即可发现泄露了AccessKeyId
行云管家:https://www.cloudbility.com/
- 这个可以用来管理云资源,填入accesskeyid和accesskeysercet即可获取该用户下云资源但也被人用来管理别人云资源
➢JS安全-前端逻辑-代码验证机制
后端验证比前端验证安全,前端验证可以抓包使其验证为真,从而绕过前端js验证机制。
演示网站:https://mx2.gabf265.com/user/find_password
- 该网站的忘记密码验证流程就是js前端验证
- 根据请求的地址,搜索url路径关键字,查看验证逻辑
- 使用bp拦截响应包,修改响应包中code值为前端验证通过的200即可绕过验证机制
- 可以自己进行尝试
- 不过这个网站后端应该也进行了防护,即使成功重置密码后,也登录不上,貌似是没有修改成功,只是页面显示成功了。
➢JS安全-前端接口-未授权&接口提交
有的网站页面未授权防护不充分,使用浏览器插件或者脚本可以提取到一些网站url,有的url可以直接进行访问,有的接口如文件上传等接口可能可以直接上传,从而不进行登录验证等。
➢JS安全-框架漏洞-Pentestkit插件检测
推荐一个谷歌插件:
- 扶墙后访问添加插件到谷歌浏览器:
https://chrome.google.com/webstore/detail/owasp-penetration-testing/ojkchikaholjmcnefhjlbohackpeeknd/related - 这个插件集成Wappalyzer 可以不用Wappalyzer识别了
参考
学习内容均来自小迪安全系列课程: