前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >不容忽视的JS敏感信息泄露

不容忽视的JS敏感信息泄露

作者头像
网络安全自修室
发布2022-03-30 21:43:36
2.9K0
发布2022-03-30 21:43:36
举报

1、免责声明

本文提供的工具、教程、学习路线、精品文章均为原创或互联网收集,旨在提高网络安全技术水平为目的,只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途。

2、内容速览

一、前言

一个微小的漏洞,经过攻击者的巧妙而持久的利用,也会对企业和用户造成巨大的危害。

而本文将要介绍的JS泄露敏感信息问题也是如此,攻击者不仅可以轻松收集用户手机号,姓名等隐私信息,更可以借此攻入企业后台甚至是getshell。本文将通过一些公开和未公开的漏洞详细阐述此类漏洞

二、漏洞成因

JavaScript作为一种相当简单但功能强大的客户端脚本语言,本质是一种解释型语言。所以,其执行原理是边解释边运行。

上述特性就决定了JavaScript与一些服务器脚本语言(如ASP、PHP)以及编译型语言(如C、C++)不同,其源代码可以轻松被任何人获取到。

一些粗心的开发者将各式敏感信息存储在JavaScript脚本中,由于JS的特性,攻击者可以对这些信息一览无余,从而导致对WEB服务和用户隐私造成不同程度的威胁。

三、漏洞的分类及利用

根据泄露的内容、利用方式以及带来的危害不同,大致可以将JS敏感信息泄露分为以下三类:

1. JS文件泄露后台管理敏感路径及API

此类问题主要存在于后台登陆页面以及类似网页内引入的JS文件中。

在企业渗透测试时如果遇到后台,在SQL注入或者是路径爆破都试过,但是仍然无法进入后台时。

根据此类漏洞,说不定登陆页面下引入的js文件暴露的后台路径会成为突破口。如果某台的某一个页面没有对是否登陆状态做验证,攻击者就可以一次未授权访问这些暴露的API,实现篡改前台内容甚至是getshell。

下面这个某大型互联网服务提供商的房产后台页面引入的js文件泄露后台接口信息,就是非常典型的例子:

(信息泄露源是房产管理登陆后台页面下的common.js)

(js文件中的urlMap对象内容完整的泄露了后台所有功能实现的API,因此攻击者无需登陆就可以进行未授权操作)

2. 页面内JS泄露http-only保护的cookie

因为此类问题利用方式和造成的危害与即将谈论到的第三类问题不同,所以把这类问题单独拿出来讲一讲。

XSS常见利用手段是劫持用户cookie并登陆其账户,但添加了http-only标记的cookie客户端脚本无法读取,该项技术已经成为减小XSS带来的危害的重要手段。

部分厂商更是因此降低了对XSS的评级。不过千里之堤溃于蚁穴,可爱的程序员直接将受http-only保护的cookie写入页面,导致通过利用crossdoamin.xml配置不当等漏洞,攻击者可以轻松跨域读取到受保护的cookie,攻击者登陆用户账户登录的梦想得以延续。

(知道首页js内直接输出受保护的BDUSS)

比如这个由于百度知道crossdomain配置不当,再结合知道页面内的js直接输出用户的BDUSS,成功绕过了http-only的保护

3. 页面内JS以及AJAX请求泄露用户敏感信息

经过以往测试经验的归纳,此类漏洞常见该类型的泄露常见于网站评论功能实现处。其实该类型的漏洞比通过收集用户敏感信息来的更加快捷容易。

由于程序员疏忽直接在页面的js以及AJAX请求返回的内容中输出参与评论用户的敏感信息,导致攻击者可以轻松获取用户的手机号,真实姓名,注册邮箱,住址甚至有可能获取用户手机的IMEI,和抽奖和抽中的游戏礼包号。

泄露内容千奇百怪,遇到此类问题时,看着泄露的内容时常会被雷到。从个人的测试经验来看,涉及的厂商范围广泛,从某搜索服务提供商下的订票网站、在线挂号网站到某公司旗下的大型游戏网站都发现过此类漏洞,其他厂商肯定也存在该类问题。

不需要SQL注射脱库,通过编写爬虫就能大批量的获取用户的敏感信息,利用难度小,危害却很大。

(某FM类应用评论处泄露匿名评论用户邮箱,手机号)

(某大型游戏网站抽奖页面下泄露获奖用户礼包兑换号码)

(某应用商店获取评论内容ajax请求中泄露用户imei和真实ip)

四、漏洞挖掘与检测

不管是第一、二还是第三种漏洞,他们都有一个共同的检测方式,那就是查看源代码然后在源代码中搜索 (Ctrl+F) 常见的泄露点关键词”phone”,”email”,”ip”等等。

当然不同情况还是需要不同对待的:

对于第一种泄露形式的检测相对容易但是可能利用可能相对吃力,在碰到企业后台或者是类似服务时,查看页面也引入的js文件,在文件中查找”.html”,”.do”,”.action”等关键词会帮助快速发觉此类问题,不过对于相对复杂的情况还是需要沉下心将每一个js耐心的看过去。认真,你就赢了。

对于第二、三种泄露,在查看源代码时搜索页面内脚本是否存在泄露得同时,可能还需要检测ajax响应的内容,所以通过Fiddler这类抓包软件查看服务器响应的内容来查找,也绝对是手动查找该类型漏洞的最好方式。

漏洞检测自动化绝对是我们的终极目标,对于该类问题的自动化检测,通过编写Chrome插件我们可以添加检测规则,即上文提到的常见关键词,在正常浏览页面的同时挖掘漏洞,一举两得。

五、漏洞修复和防范

此类漏洞修复相对容易,在明白了JavaScript的特性以后,不把此类敏感信息直接存储进页面内的js和ajax请求响应内容中就可以解决这类问题。不过根除此类问题之道还是需要程序员提高安全意识,从泄露用户隐私信息到威胁企业安全,再小的问题也会带来蝴蝶效应,毕竟安全无小事。

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-03-27,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 网络安全自修室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、漏洞成因
  • 三、漏洞的分类及利用
  • 四、漏洞挖掘与检测
  • 五、漏洞修复和防范
相关产品与服务
脆弱性检测服务
脆弱性检测服务(Vulnerability detection Service,VDS)在理解客户实际需求的情况下,制定符合企业规模的漏洞扫描方案。通过漏洞扫描器对客户指定的计算机系统、网络组件、应用程序进行全面的漏洞检测服务,由腾讯云安全专家对扫描结果进行解读,为您提供专业的漏洞修复建议和指导服务,有效地降低企业资产安全风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com