MySQL空口令HASH绕过认证及缓冲区溢出漏洞

QQ空间 新浪微博 微信 QQ facebook twitter
漏洞ID 1201565 漏洞类型 未知
发布时间 2004-12-06 更新时间 2004-12-06
CVE编号 CVE-2004-0628 CNNVD-ID CNNVD-200412-014
漏洞平台 N/A CVSS评分 10.0
|漏洞来源
https://www.securityfocus.com/bid/83194
http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-200412-014
|漏洞详情
MySQL是一款开放源代码关系型数据库系统。MySQL验证机制实现存在问题,远程攻击者可以利用这个漏洞无需用户密码通过验证。通过提交特殊构建的验证包,可使攻击者绕过MySQL4.1中的口令认证。check_connection(sql_parse.cc):/*Oldclientssendnull-terminatedstringaspassword;newclientssendthesize(1byte)+string(notnull-terminated).Henceincaseofemptypasswordbothsend'\0'.*/uintpasswd_len=thd->client_capabilities&CLIENT_SECURE_CONNECTION?*passwd++:strlen(passwd);在'clientcapabilities'标记中提供0x8000,用户可以指定passwd_len字段的值。要利用漏洞攻击选择0x14(20)作为值,因为它等于SHAHASH长度,可以通过认识过程中的检查。在通过几个用于确保用户来自许可主机的检查后,认证过程就会进入如下代码:/*checkpassword:itshouldbeemptyorvalid*/if(passwd_len==acl_user_tmp->salt_len){if(acl_user_tmp->salt_len==0||acl_user_tmp->salt_len==SCRAMBLE_LENGTH&&check_scramble(passwd,thd->scramble,acl_user_tmp->salt)==0||check_scramble_323(passwd,thd->scramble,(ulong*)acl_user_tmp->salt)==0){acl_user=acl_user_tmp;res=0;}}check_scramble函数会返回认证失败,但查看check_scramble_323函数我们可以看到:my_boolcheck_scramble_323(constchar*scrambled,constchar*message,ulong*hash_pass){structrand_structrand_st;ulonghash_message[2];charbu
|受影响的产品
MySQL AB MySQL 5.0
|参考资料

来源:US-CERTVulnerabilityNote:VU#645326
名称:VU#645326
链接:http://www.kb.cert.org/vuls/id/645326
来源:XF
名称:mysql-myrnd-bo(16612)
链接:http://xforce.iss.net/xforce/xfdb/16612
来源:BUGTRAQ
名称:20040705MySQLAuthenticationBypass
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=108904917528205&w=2
来源:VULNWATCH
名称:20040705MySQLAuthenticationBypass
链接:http://archives.neohapsis.com/archives/vulnwatch/2004-q3/0001.html
来源:BUGTRAQ
名称:20040705MySQLAuthenticationBypass
链接:http://marc.theaimsgroup.com/?l=bugtraq&m=108904917528205&w=2