1、介绍
- 在对有状态协议进行模糊测试时,为了实现更加深层次的测试,一般都会构建一个状态机,利用协议的状态来引导模糊测试。
- 构建协议状态机可以手动构建,但这需要协议的大量专业知识。
- 为了节省人力和时间,本文利用协议真实通信流量,自动构建协议状态机。
- 本文以FTP协议为例,描述了使用真实通信流量构建协议状态机的过程。
2、过程
- 首先,捕获FTP通信的真实流量。可以使用Wireshark,也可以使用Scapy库进行捕获。本文以LightFTP为目标服务器,使用Scapy库进行捕获,并以pcap文件保存。具体过程参考:Scapy——捕获网络流量(本机Win+虚拟机Ubuntu)_scapy 接口是虚拟机-CSDN博客
- 其次,需要从pcap文件中提取协议的状态转换过程,和对应的触发事件。创建一个ExtractSequence.py文件实现该过程。
-
import pysharkdef analyze_ftp_pcap(pcap_file):# 读取PCAP文件cap = pyshark.FileCapture(pcap_file)# 遍历数据包并提取FTP数据包ftp_packets = []for packet in cap:if 'FTP' in packet:f
-