Microsoft Forms未授权获取他人邮箱信息的漏洞分析( 二 )
文章图片
可以注意到其中包含了以下关键字段:
formapi/api//users//forms()/responses用户B提交表单数据时 , 这里请求内容中的ownerTenantID,ownerID,formID与他相关 , 因此 , 我就想利用这些参数能否查看到用户B的相关信息 , 比如邮箱email呢?于是 , 我就用$select语法构造了以下查询请求:
文章图片
但请求发出后 , 服务端却返回了404的状态 。 也即服务端不允许我访问createdBy属性或是其他用户的表单邮箱信息 。 但我又想到了另外一种方法:”是否有另一个实体有createdBy属性?并且还具有与forms表单实体相同的实体键(formID)?这又引发了我的想像 , 假设我们要找的实体为X , 什么情况下实体键应该与forms表单实体键相同?
实体X具备createdBy属性 , 而我们的点在于需要通过该属性访问到其中的用户邮箱email 。 另外 , 假设X有一个名为accountID的实体键 , 为了访问其中的email , 我们需要向其发送以下请求:
formapi/api//users//X()$select=createdBy这里的关键是accountID , 因为我们并不知晓其中包含了什么东西 , 但从前面的步骤来看 , 我们可以通过用户B提交的表单看到其中的formID 。 之后 , 经过几种实体类型的比对 , 我又发现了另一个名为runtimeForms并包含createdBy属性的实体 , 且其与forms表单具备相同的实体键!这样 , 就完全满足了我前述想像的漏洞利用条件了:
文章图片
接下来 , 我把请求中的forms用runtimeForms代替 , 并用$select语法去请求受害者的邮箱email 。 请求发出后 , 终于成功获取到了受害者的邮箱信息:
文章图片
据此 , 我就能无交互地实现受害者邮箱信息获取了 , 当然最终也收获了微软官方奖励的$2k奖励 。 
文章图片
【Microsoft Forms未授权获取他人邮箱信息的漏洞分析】
文章图片
- 游戏王未界域卡——龙之溪谷,点射龙,感染龙,守护龙,始枪龙骑
- 石墨烯+锂电池≠石墨烯电池,真正的石墨烯电池远未出现
- 线上直售+油电同价 将成为沃尔沃纯电动车未来趋势
- 第一未免底气硬,OPPO成功拿今年1月榜首,第2真大佬
- 范冰冰近日曝出:深夜发文隔空喊话李晨,疑两人从未分手
- 迈向电气化未来 迈凯伦Artura新车图解
- 你的言行中,藏着孩子未来的教养,任性大人当不得
- 国人没白捧它!十年螺丝都不坏,218马力4L油,至今未被超越!
- 海安80后记者猝然离世引发追思如潮:薇颜浅笑,在未完成的报道前定格
- 未来一周,3生肖财星高照,衣食无忧,金银满钵,财富满满!
