CVE漏洞中文网

0DayBank一个专门收集整理全球互联网漏洞的公开发布网站
  1. 首页
  2. 百科
  3. 正文

pornhub打不开

2017年5月24日 2503点热度 0人点赞 0条评论

pornhub打不开

  • 首页
  • 分类阅读
  • 文库
  • 专栏
  • 公开课
  • 商城
  • 漏洞盒子
注册 | 登录
投稿

我是如何黑进成人生活网站Pornhub拿到2万美元赏金的

banish2016-07-27共318234人围观 ,发现 12 个不明物体漏洞

Clipboard Image.png

老司机们对Pornhub也不会陌生了(//∇//)\,此处略去一万字…作者是如何黑进pornhub的呢?这一切都要从那日作者打开pornhub说起…

概要:

笔者获取了pornhub.com的远程执行代码,并且在Hackone上赚取了2万美元的漏洞赏金。

笔者在PHP的垃圾回收算法中发现了UAF漏洞

此漏洞均可以通过利用PHP的反序列化功能进行远程利用

笔者还获取了互联网漏洞悬赏协会的2000美元赏金

0×01 漏洞发掘

大体“分析”了平台之后,笔者快速检测了该网站的反序列化使用情况,发现多种路径受到影响(比如你上传性感图片的路径):

http://www.pornhub.com/album_upload/create

http://www.pornhub.com/uploading/photo

在这套程序中,当你post数据中包含名为cookie的参数时,会将cookie参数的值进行反序列化操作,并且其相关的数据会在Set-cookie头中有所体现。

Clipboard Image.png

这可以通过发送包含一个对象的特定数组来进一步验证:

Clipboard Image.png

响应布局:

Clipboard Image.png

第一眼看上去可能会觉得它只是造成信息泄露危害,但一般情况下大家都清楚反序列化用户输入是不明智的:

ROP in PHP applications

Shocking News in PHP Exploitation

开发技术标准中要求所谓合适的面向对象的编程(Property-Oriented-Programming )意味着可能会因为滥用已经存在的类而触发不必要的恶意代码。但不幸的是,笔者很难收集到总体上pornhub使用的所有框架和PHP对象,对多个类别的框架进行了测试之后都无功而返。

0×02 漏洞描述

反序列化的核心相对来说比较复杂,涉及到了PHP5.6 1200多行的代码,此外,许多PHP类有自己的反序列化的方法。为了支持像对象,数组,整型,字符串,甚至是引用这样的数据类型,PHP的记录中显示了一些bug和内存损坏的漏洞。目前PHP的新版本中(PHP5.6或者PHP7)并没有发现类似的漏洞,特别是现在反序列化受到了更多的关注,好比再去榨已经榨干的柠檬,已经没有太多的漏洞可以被挖掘了。

fuzzing 反序列化

为了找到最终的答案笔者的基友Dario针对传递给反序列化的序列串“特制”了一个fuzzer工具,在PHP7上运行这个fuzzer工具将会得到不可预料的结果,而且这种结果在测试pornhub的网站时是不可复制的。因此笔者 把目标放在了PHP5的版本上,然而在PHP5的版本中这个fuzzer生成了1TB的日志还是没有什么结果。当笔者把越来越多的精力放在fuzzing上并且毫无收获之后,笔者开始质疑自己了:这是一个安全相关问题吗?如果是的话是只能本地利用还是可以远程利用呢? 为了深入调查笔者又用fuzzer工具收集了超过200kb的非打印blobs数据。

分析意外结果

接下来笔者用了大量时间来分析症结所在。笔者已经提取了工作内存损坏漏洞的简略证据,最终发现了一个UAF漏洞!经过进一步调查,笔者发现根本源头来自PHP的垃圾回收算法,与反序列化根本毫无关系,这个PHP的两个组成部件在解序列化后才相互作用, 因此,不是很适用于远程利用。经过进一步的分析后,笔者对问题的根源有了更深的理解,并且发现了更多的UAF漏洞,而且是可以用来远程利用的。 漏洞链接:

PHP Bug – ID 72433--CVE-2016-5771

PHP Bug – ID 72434-- CVE-2016-5773

0×03 远程利用

即便是这个让人充满“希望”的UAF漏洞也是非常难以远程利用的,特别是它涉及到了多个开发平台。 明确了我们的目标是能够远程执行任意代码后,我们需要找到控制CPU指令指针到RIP寄存器的方法,通常会有以下障碍:

1.栈和堆以及任何其他的可写入段被标记为不可执行(可执行空间保护)

2.即使你能够控制指令指针,你也需要有一个可执行内存段的有效地址。之后调用libc函数系统执行一个shell命令行。在PHP中,通常是很容易执行zend_eval_string的,例如你在一个PHP脚本中写上“eval(‘echo 1337;’);”时,它可以让我们无需转换而执行任意代码。

第一个问题可以通过使用返回导向编程(ROP)利用现有的可执行记忆片段来解决。第二个问题需要找到zend_eval_string的正确地址。通常当一个动态链接程序被执行时加载程序将会映射此过程到0×400000 (x86_64标准负载地址),如果你已经以其他方式获取了执行权限,你可以本地查找你想要的任何功能。笔者发现了pornhub使用的是PHP5-CGI的编译版本,因此难以确定确切的PHP版本。

具体的利用过程因为比较繁杂小编在这并不赘述,笔者利用漏洞具体能实现的是:

1.下载pornhub.com的完整数据库(包括敏感数据)

2. 可在平台上跟踪用户操作行为

3.网站托管在服务器上的所有代码皆可被泄露

4.深入内网

0×04 规避建议

笔者给出的建议是:

即使是在不同类型的PHP环境中,仍然可以利用反序列化实现远程代码执行,因此不要在反序列化中涉及使用用户数据,少用复杂的序列化方法例如json。

最新的PHP版本已经修复了漏洞,因此读者们需尽快更新PHP版本。

希望此文对您有所帮助,如果纰漏欢迎指错^ ^

*参考来源:evonide,编译/banish,有删改,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

banish

banish32 篇文章等级: 6级
|
|
  • 上一篇:使用免费http代理IP进行内网扫描
  • 下一篇:大量无线键盘存在KeySniffer漏洞,可嗅探用户输入

这些评论亮了

  • 甲鱼(2级)回复
    最后洞主精尽而亡……
    )12(亮了
  • jimmyc回复
    看不懂,如果有偶pornhub的图文就更好明白了
    )9(亮了
  • 素还真(1级)半神半圣亦半仙,全儒全道是全贤。 脑中真书藏万卷,掌握文武...回复
    这翻译太划水了 :arrow:
    )8(亮了
  • DavidHu(1级)回复
    @ 我叫扛把子 要不要截个首页给你看看哇
    )7(亮了
  • 红茶(1级)回复
    @ jimmyc 这种文字,就是赚分的,没打算让你看懂。要让你看懂的,类似的文章应该说明几个问题:
    1、fuzzing脚步设计的时候,从那个方面开始攻击的;
    2、攻击结果看php在反序列化和垃圾搜集方面有哪些特点;
    3、可以说明反序列化和垃圾搜集算法的一些东西,也可以制定连接给出一个参考 ;
    4、在编写基于PHP的ROP时候,注意的问题。
    )6(亮了
发表评论

已有 12 条评论

  • hello 2016-07-27回复1楼

    niu

    亮了(6)
  • Scales (3级)我这么复杂,一句话怎么能够概括呢~ 2016-07-27回复2楼

    :smile:

    亮了(5)
    • cujam (1级) 2016-07-28回复

      @ Scales  这个头像不是蛋黄吗?

      亮了(4)
  • 甲鱼 (2级) 2016-07-27回复3楼

    最后洞主精尽而亡……

    亮了(12)
  • 曾老师 (1级)FreeBuf 首席清洁工 2016-07-27回复4楼

    banish,想不到你是这样的人

    亮了(6)
    • banish (6级)天地不仁 万物刍狗 2016-07-27回复

      @ 曾老师  :?: 宝宝还是个宝宝

      亮了(4)
  • 我叫扛把子 2016-07-27回复5楼

    这是个啥网站呀,打不开呀

    亮了(6)
    • DavidHu (1级) 2016-07-29回复

      @ 我叫扛把子 要不要截个首页给你看看哇

      亮了(7)
  • 素还真 (1级)半神半圣亦半仙,全儒全道是全贤。 脑中真书藏万卷,掌握文武... 2016-07-27回复6楼

    这翻译太划水了 :arrow:

    亮了(8)
  • 水军 2016-07-27回复7楼

    默默的还是看原文吧

    亮了(4)
  • jimmyc 2016-07-27回复8楼

    看不懂,如果有偶pornhub的图文就更好明白了

    亮了(9)
    • 红茶 (1级) 2016-07-29回复

      @ jimmyc 这种文字,就是赚分的,没打算让你看懂。要让你看懂的,类似的文章应该说明几个问题:
      1、fuzzing脚步设计的时候,从那个方面开始攻击的;
      2、攻击结果看php在反序列化和垃圾搜集方面有哪些特点;
      3、可以说明反序列化和垃圾搜集算法的一些东西,也可以制定连接给出一个参考 ;
      4、在编写基于PHP的ROP时候,注意的问题。

      亮了(6)

必须您当前尚未登录。登陆?注册

必须(保密)

表情插图

取消

banish

banish

天地不仁 万物刍狗

32 篇文章53 条评论

相关阅读

  • 0day第三弹:又一个Flash严重漏洞曝光
  • 海康威视(Hikvision)安防监控录像机曝远程代码执行漏洞
  • 思科CloudCenter Orchestrator系统曝提权漏洞CVE-2016-9223
  • 如何找出Timsort算法和玉兔月球车中的Bug?
  • 利用Linux内核的信息泄露绕过kALSR防护机制

特别推荐

关注我们 分享每日精选文章

不容错过

  • [Blackhat]2014美国黑帽大会有哪些精彩的议题?FB情报组2014-08-07
  • 如何基于菜刀PHP一句话实现单个文件批量上传?安全小飞侠2015-12-28
  • FreeBuf公开课:Wi-Fi安全与渗透测试(第一集)FB视频2015-03-25
  • Hacking Team流量攻击之EXE攻击分析LiukerTeam2016-01-23

FREEBUF

  • 免责声明
  • 关于我们
  • 加入我们

广告及服务

  • 寻求报道
  • 广告合作
  • 联系我们
  • 友情链接

关注我们

  • 官方微信
  • 新浪微博
  • 腾讯微博
  • Twitter

赞助商

Copyright © 2013 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号

css.php0daybank

标签: 暂无
最后更新:2017年5月24日

小助手

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2024 www.pdr.cn CVE漏洞中文网. ALL RIGHTS RESERVED.

鲁ICP备2022031030号

联系邮箱:wpbgssyubnmsxxxkkk@proton.me