mysql溢出攻击,[转帖]MySQL远程信息泄漏和缓冲区溢出漏洞_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Lin...

受影响系统:

MySQL AB MySQL <= 5.0.20

受影响系统:

MySQL AB MySQL 5.0.21

描述:

BUGTRAQ ID: 17780

CVE(CAN) ID: CVE-2006-1516,CVE-2006-1517

MySQL是一款使用非常广泛的开放源代码关系数据库系统,拥有各种平台的运行版本。

1 信息泄漏漏洞

通过创建特制的畸形登录报文,远程攻击者可以使用未初始化的内存内容填充初始的数据库名。

假设MySql Server允许匿名访问。如果以用户“wisec”和口令“s”使用数据库“wisecdb”的话,正常的客户端会发送如下报文:

---------------------------------------------------------------

43 00 00 01 0d a6 03 00 00 00 00 01 08 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 77 69 73 65 63 00 14 aa 69 23 07 2a

ff 99 61 a3 c4 5f 04 66 3b 32 ef a1 f2 b6 59 77

69 73 65 63 64 62 00

C . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . .

. . . . w i s e c . . . i # . *

. . a . . _ . f ; 2 . . . . Y w

i s e c d b .

---------------------------------------------------------------

但在sql_parse.cc的993行check_connection(THD *thd)函数的代码中:

--

char *user= end;

char *passwd= strend(user)+1;

char *db= passwd;

char db_buff[NAME_LEN+1]; // buffer to store db in

utf8

char user_buff[USERNAME_LENGTH+1]; // buffer to store user

in utf8

uint dummy_errors;

uint passwd_len= thd->client_capabilities & CLIENT_SECURE_CONNECTION ?

*passwd++ : strlen(passwd);

db= thd->client_capabilities & CLIENT_CONNECT_WITH_DB ?

db + passwd_len + 1 : 0;

[1]

/* Since 4.1 all database names are stored in utf8 */

if (db)

{

db_buff[copy_and_convert(db_buff, sizeof(db_buff)-1,

system_charset_info,

db, strlen(db),

thd->charset(), &dummy_errors)]= 0;

db= db_buff;

}

--

可见[1]处缺少对报文结构的检查。

如果用任何其他字节(如“wisec0”)替换用户名“wisec\0”末尾的空字节的话,就会为用户分配一些报文内容,为db分配一些packet_length之外的内存。

因此如果能够发送特制的报文的话,就可以得到类似于以下的错误消息:

Access denied for user ''@localhost to database 'lqt'

通过更改报文长度(db长度),恶意用户就可以获得敏感信息。

--转自

9e4ac7b26cb447807de16cbed405738a.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值