成都做网站,就选中成网站建设!专业四川网站建设,成都网站建设服务提供商
企业宣传网站建设、电子商务网站建设、OA办公系统。联系电话:028-66165255
企业宣传网站建设、电子商务网站建设、OA办公系统。联系电话:028-66165255
最新网站建设案例
- CNNIC通知从2012年10月29日起中文…
- 电商竞争加剧天猫商城开始卖书了!…
- MySQL身份认证漏洞赶快升级补丁吧…
- 马云谈中国电子商务模式
- 360千元智能手机下个月接受预定中…
- Windows 8 RP版本微软叫好用户体验…
- 一条短信成本只有一厘钱却收取一毛…
- iPhone5在中国的三大供应商中富士…
- 顺风快递涉足视频网购行业
- 继腾讯后百度也开始涉入刷机领域
- 未来5到10年html5将称霸移动浏览器…
- Evernote计划在中国安装应用服务器…
- 腾讯重组方向公布明天公布重组详情…
- 谷歌企鹅算法更新 许多优化作弊网…
- 有道搜索结果重新之#标签大介绍
- 腾讯搜索旗下搜搜将和无线事业部合…
- 百度和长虹合作推云手机价格低于一…
- 微软IE浏览器不标准引发对手担忧
- 百度网盘邀请好友注册免费扩容今起…
- 何谓大数据?何谓数据大?
- Facebook创始人家庭介绍
- 腾讯发展迅速影业额超过其他三家公…
- 网络公司的烦恼--程序源码管理不善…
- 美团CEO王兴分析国内团购网市场环…
- 网传亚马逊公司公布新版电子书阅览…
文章详情
MySQL身份认证漏洞赶快升级补丁吧
我今天早上打开电脑,在seclists中看到一个很惊人的thread:http://seclists.org/oss-sec/2012 /q2/493MySQL爆出了一个很大的安全漏洞,几乎影响5.1至5.5的所有版本。出问题的模块是登录时密码校验的部分(password.c), 在知道用户名的情况下(如root),直接反复重试(平均大约256次)即可登入。不过,MySQL身份认证的时候是采用3元 组,username,ip,password。如果client的IP在mysql.user表中找不到对应的,也无法登陆。
这个BUG实际上早在4月份就被发现了,今年5月7号,MySQL发布5.5.24的时候,修正了这个BUG。
漏洞分析:
出问题的代码如下
- my_bool check_scramble(const uchar *scramble_arg, const char *message,
- const uint8 *hash_stage2)
- {
- SHA1_CONTEXT sha1_context;
- uint8 buf[SHA1_HASH_SIZE];
- uint8 hash_stage2_reassured[SHA1_HASH_SIZE];
- mysql_sha1_reset(&sha1_context);
- /* create key to encrypt scramble */ mysql_sha1_input(&sha1_context, (const uint8 *) message, SCRAMBLE_LENGTH);
- mysql_sha1_input(&sha1_context, hash_stage2, SHA1_HASH_SIZE);
- mysql_sha1_result(&sha1_context, buf);
- /* encrypt scramble */ my_crypt((char *) buf, buf, scramble_arg, SCRAMBLE_LENGTH);
- /* now buf supposedly contains hash_stage1: so we can get hash_stage2 */ mysql_sha1_reset(&sha1_context);
- mysql_sha1_input(&sha1_context, buf, SHA1_HASH_SIZE);
- mysql_sha1_result(&sha1_context, hash_stage2_reassured);
- return memcmp(hash_stage2, hash_stage2_reassured, SHA1_HASH_SIZE);
- }
memcmp的返回值实际上是int,而my_bool实际上是char。那么在把int转换成char的时候,就有可能发生截断。比 如,memcmp返回0×200,截断后变成了0,调用check_scramble函数的就误以为“password is correct“。
但是一般来说,memcmp的返回值都在[127,-128]之内。glibc的经SSE优化后的代码,不是如此。所以这个BUG只在特定的编译环 境下才会触发:即编译MySQL的时候加了-fno-builtin,并且所使用的glibc是经SSE优化后的(一般系统自带的都是如此)。这里所说的 glibc是指Linux的glibc,FreeBSD的libc不受影响。
总的来说这个BUG还是比较严重的,上次MySQL出现这样的BUG还是在3.23/4.0时代。
上一篇:马云谈中国电子商务模式
下一篇:CNNIC通知从2012年10月29日起中文.cn和“中文.中国”分开注册