苹果SSL_goto漏洞简介
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漏洞简介相关推荐
- 华为开发者大会上,鸿蒙问世、方舟编译器开源、还有 EMUI 10;壕置100万美元,苹果推出漏洞攻击报告赏金计划……...
关注并标星星CSDN云计算 极客头条:速递.最新.绝对有料.这里有企业新动.这里有业界要闻,打起十二分精神,紧跟fashion你可以的! 每周三次,打卡即read 更快.更全了解泛云圈精彩news g ...
- 苹果全面开放漏洞奖励计划:最高100万美元等你拿
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 刚刚,苹果公司发布"苹果安全漏洞奖励计划",并表示如果研究人员决定捐赠奖励金,则公司会追加同等奖励金并捐赠给符合条 ...
- php反序列化漏洞实验,PHP反序列化漏洞简介及相关技巧小结
原标题:PHP反序列化漏洞简介及相关技巧小结 *严正声明:本文仅限于技术讨论与分享,严禁用于非法途径 要学习PHP反序列漏洞,先了解下PHP序列化和反序列化是什么东西. php程序为了保存和转储对象, ...
- 美国家漏洞数据库显示苹果iOS漏洞最多
本文讲的是 : 美国家漏洞数据库显示苹果iOS漏洞最多 , 美国国家漏洞库数据显示,Apple(苹果)OS X以及iOS平台分别以147及127个漏洞荣登2014年漏洞排行榜榜首,成为漏洞最多的 ...
- XSS跨站脚本漏洞简介、原理及防护方法
目录 1.XSS跨站脚本漏洞简介 2.XSS漏洞分类 3.XSS漏洞原理 4.XSS漏洞利用 4.1XSS基础漏洞利用 4.2XSS平台利用 5.XSS攻击过程 6. XSS漏洞防护 1.XSS跨站脚 ...
- SQL注入漏洞简介、原理及防护
目录 1.SQL注入漏洞简介 2.SQL注入漏洞原理 3.SQL注入的分类 4.注入方法 5.SQL注入危害 6.SQL注入防护措施 1.SQL注入漏洞简介 SQL注入漏洞是Web层面最高位的漏洞之一 ...
- 【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 漏洞验证 ...
- java rmi反序列化漏洞 简介
目录 一.RMI简介 二.RMI示例 三.漏洞复现 四.漏洞分析 1.为什么这里的badAttributeValueExpException对象是通过反射构造,而不是直接声明? 2.为什么不直接将ba ...
- java 反序列化漏洞简介
目录 一.Java的序列化与反序列化 二.对java序列化的理解 三.反序列化的漏洞原理概述 四.关于反射链 一.Java的序列化与反序列化 在这里我们直接自己定义一个类,然后对这个类的对象(一个实例 ...
最新文章
- 阿里巴巴集团CTO王坚:互联网、数据和计算
- Android - 文件读写操作 总结
- Flask == scoped_session
- win10下安装ubuntu,双系统,免U盘
- linux命令:userdel
- CMOS图像传感器——工作原理
- PyCharm设置自动换行
- 信息学奥赛一本通 1193:吃糖果 | OpenJudge NOI 2.6 1944:吃糖果
- Knowledge Distillation | 知识蒸馏经典解读
- java.lang.NoSuchMethodError: org.springframework.util.ReflectionUtils.doWithLocalFieldsV
- 【Django 2021年最新版教程16】pycharm model模型修改之后如何同步更新到mysql数据库
- 使用WindowsHooks库制作和使用全局钩子
- Spark SQL自定义函数案例(拼接字符串)
- cyj等于什么英语单词_英语解题方法指导及例题分析
- mysql cleaned up_关于mysqld自动停止的问题
- mysql 临时表联表查询_一、MySQL中使用从表A中取出数据来更新表B的内容例如:要update表data中的一些列属性,但是修改属性的内容来源是来自表chanpin。SQL语言中不...
- Spring SpEL表达式的使用
- Variance Reduction Methods: a Quick Introduction to Quasi Monte Carlo——完结
- vue项目storage本地存储
- Pyecharts坑之一---“画图不显示“