Apple于最近放出了iOS 7.0.6固件升级,修复了SSL连接验证时的BUG。用升级后的ios系统打开漏洞测试页面https://www.imperialviolet.org:1266已经无法打开。页面提示无法建立安全链接。自此,据说被苹果遗忘了18个月的重大BUG被成功修复。但目前MACOS的这个BUG仍未修复,使用Safari浏览器打开上文的BUG的测试页面会出现下面的提示,但使用firefox或Chrome打开页面却不会成功。

Safari打开页面的情况

Chrome打开页面的情况

Firefox打开页面的情况

该漏洞出现的原因是因为位于http://opensource.apple.com/source/Security/Security-55471/libsecurity_ssl/lib/sslKeyExchange.c中的一处SSLHashSHA1判断下方多出了一个goto语句导致了执行SSLVerifySignedServerKeyExchange函数时必定跳转到fail标号处,会return err并触发BUG。

SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa, SSLBuffer signedParams,uint8_t *signature, UInt16 signatureLen)
{OSStatus        err;SSLBuffer       hashOut, hashCtx, clientRandom, serverRandom;uint8_t         hashes[SSL_SHA1_DIGEST_LEN + SSL_MD5_DIGEST_LEN];SSLBuffer       signedHashes;uint8_t            *dataToSign;size_t          dataToSignLen;signedHashes.data = 0;hashCtx.data = 0;clientRandom.data = ctx->clientRandom;clientRandom.length = SSL_CLIENT_SRVR_RAND_SIZE;serverRandom.data = ctx->serverRandom;serverRandom.length = SSL_CLIENT_SRVR_RAND_SIZE;if(isRsa) {/* skip this if signing with DSA */dataToSign = hashes;dataToSignLen = SSL_SHA1_DIGEST_LEN + SSL_MD5_DIGEST_LEN;hashOut.data = hashes;hashOut.length = SSL_MD5_DIGEST_LEN;if ((err = ReadyHash(&SSLHashMD5, &hashCtx)) != 0)goto fail;if ((err = SSLHashMD5.update(&hashCtx, &clientRandom)) != 0)goto fail;if ((err = SSLHashMD5.update(&hashCtx, &serverRandom)) != 0)goto fail;if ((err = SSLHashMD5.update(&hashCtx, &signedParams)) != 0)goto fail;if ((err = SSLHashMD5.final(&hashCtx, &hashOut)) != 0)goto fail;}else {/* DSA, ECDSA - just use the SHA1 hash */dataToSign = &hashes[SSL_MD5_DIGEST_LEN];dataToSignLen = SSL_SHA1_DIGEST_LEN;}hashOut.data = hashes + SSL_MD5_DIGEST_LEN;hashOut.length = SSL_SHA1_DIGEST_LEN;if ((err = SSLFreeBuffer(&hashCtx)) != 0)goto fail;if ((err = ReadyHash(&SSLHashSHA1, &hashCtx)) != 0)goto fail;if ((err = SSLHashSHA1.update(&hashCtx, &clientRandom)) != 0)goto fail;if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)goto fail;if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)goto fail;goto fail; // 多出来的goto failif ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)goto fail;err = sslRawVerify(ctx,ctx->peerPubKey,dataToSign,               /* plaintext */dataToSignLen,           /* plaintext length */signature,signatureLen);if(err) {sslErrorLog("SSLDecodeSignedServerKeyExchange: sslRawVerify ""returned %d\n", (int)err);goto fail;}fail:SSLFreeBuffer(&signedHashes);SSLFreeBuffer(&hashCtx);return err;}

尝试自己重新编译此程序,不想缺少部分头文件,Google无果,遂作罢。

-update-

OSX10.9.2更新后此BUG消失。

苹果SSL_goto漏洞简介相关推荐

  1. 华为开发者大会上,鸿蒙问世、方舟编译器开源、还有 EMUI 10;壕置100万美元,苹果推出漏洞攻击报告赏金计划……...

    关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...

  2. 苹果全面开放漏洞奖励计划:最高100万美元等你拿

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 刚刚,苹果公司发布"苹果安全漏洞奖励计划",并表示如果研究人员决定捐赠奖励金,则公司会追加同等奖励金并捐赠给符合条 ...

  3. php反序列化漏洞实验,PHP反序列化漏洞简介及相关技巧小结

    原标题:PHP反序列化漏洞简介及相关技巧小结 *严正声明:本文仅限于技术讨论与分享,严禁用于非法途径 要学习PHP反序列漏洞,先了解下PHP序列化和反序列化是什么东西. php程序为了保存和转储对象, ...

  4. 美国家漏洞数据库显示苹果iOS漏洞最多

    本文讲的是 :  美国家漏洞数据库显示苹果iOS漏洞最多  ,  美国国家漏洞库数据显示,Apple(苹果)OS X以及iOS平台分别以147及127个漏洞荣登2014年漏洞排行榜榜首,成为漏洞最多的 ...

  5. XSS跨站脚本漏洞简介、原理及防护方法

    目录 1.XSS跨站脚本漏洞简介 2.XSS漏洞分类 3.XSS漏洞原理 4.XSS漏洞利用 4.1XSS基础漏洞利用 4.2XSS平台利用 5.XSS攻击过程 6. XSS漏洞防护 1.XSS跨站脚 ...

  6. SQL注入漏洞简介、原理及防护

    目录 1.SQL注入漏洞简介 2.SQL注入漏洞原理 3.SQL注入的分类 4.注入方法 5.SQL注入危害 6.SQL注入防护措施 1.SQL注入漏洞简介 SQL注入漏洞是Web层面最高位的漏洞之一 ...

  7. 【XSS漏洞-01】XSS漏洞简介、危害与分类及验证

    目录 1 XSS漏洞简介 2 XSS漏洞危害 3 XSS漏洞分类 3.1 反射型XSS 3.2 存储型XSS 3.3 DOM型XSS 3.3.1 节点树模型 3.3.2 DOM型XSS 4 漏洞验证 ...

  8. java rmi反序列化漏洞 简介

    目录 一.RMI简介 二.RMI示例 三.漏洞复现 四.漏洞分析 1.为什么这里的badAttributeValueExpException对象是通过反射构造,而不是直接声明? 2.为什么不直接将ba ...

  9. java 反序列化漏洞简介

    目录 一.Java的序列化与反序列化 二.对java序列化的理解 三.反序列化的漏洞原理概述 四.关于反射链 一.Java的序列化与反序列化 在这里我们直接自己定义一个类,然后对这个类的对象(一个实例 ...

最新文章

  1. 阿里巴巴集团CTO王坚:互联网、数据和计算
  2. Android - 文件读写操作 总结
  3. Flask == scoped_session
  4. win10下安装ubuntu,双系统,免U盘
  5. linux命令:userdel
  6. CMOS图像传感器——工作原理
  7. PyCharm设置自动换行
  8. 信息学奥赛一本通 1193:吃糖果 | OpenJudge NOI 2.6 1944:吃糖果
  9. Knowledge Distillation | 知识蒸馏经典解读
  10. java.lang.NoSuchMethodError: org.springframework.util.ReflectionUtils.doWithLocalFieldsV
  11. 【Django 2021年最新版教程16】pycharm model模型修改之后如何同步更新到mysql数据库
  12. 使用WindowsHooks库制作和使用全局钩子
  13. Spark SQL自定义函数案例(拼接字符串)
  14. cyj等于什么英语单词_英语解题方法指导及例题分析
  15. mysql cleaned up_关于mysqld自动停止的问题
  16. mysql 临时表联表查询_一、MySQL中使用从表A中取出数据来更新表B的内容例如:要update表data中的一些列属性,但是修改属性的内容来源是来自表chanpin。SQL语言中不...
  17. Spring SpEL表达式的使用
  18. Variance Reduction Methods: a Quick Introduction to Quasi Monte Carlo——完结
  19. vue项目storage本地存储
  20. Pyecharts坑之一---“画图不显示“

热门文章

  1. 秘密分享(Secret Sharing)
  2. Passage Re-ranking with BERT
  3. 计算机课人猿泰山游戏,玩电脑
  4. 【QT】实现贪吃蛇小游戏(附源码)
  5. 老毛桃winpe官网
  6. Cannot access memory at adress 0xbf9
  7. 《TCPIP网络编程》课后练习答案第一部分1~5章 尹圣雨
  8. 【行研资料】智能家居的未来(英文)——附下载
  9. 示波器表笔旁边的夹子是什么_示波器探头的详细使用
  10. 示波器表笔旁边的夹子是什么_示波器探头的正确使用方法?