fragment missing test with scapy
Page content
다음과 같이 scapy를 이용해서 fragment를 쉽게 만들 수 있다.
from scapy.all import *
dip="10.0.0.1"
payload=" "*1000
packet=IP(dst=dip)/UDP(dport=0x1234)/payload
frag_list=fragment(packet,fragsize=500)
counter=1
for fragment in frag_list:
print "Packet no%d" %counter
print
fragment.show()
counter+=1
send(fragment)
frag_list에서 counter 변수를 확인해서 전송하지 않으면 간단하게 fragment가 수신되지 않은 경우에 시험할 수 있음.
필요하면 frag_list의 순서를 뒤집는 것도 가능하고, 각 fragment의 offset값을 조정하거나 패킷 크기를 변경하면 다른 비정상 경우도 쉽게 시험할 수 있다.