详细介绍了fuzzing 工具spike自动化挖掘漏洞的过程
在上一节,我们意识到向可用命令发送fuzz数据是很有用的,并且命令的参数看起来是不支持参数的。让我们从最简单的开始,首先发送一fuzz过的字符串给一个命令。
SPIKE脚本实现起来的效果如下:
s_readline();//打印从服务收到的一行数据
s_string_variable("COMMAND"); //发送fuzz数据
恩,当我们连接并且发送fuzz数据到应用服务器后,我们等待着服务器会返回最初的“Welcome”信息。保存这些内容到fuzzing系统,命名为“vscommand.spk”。
再用SPIKE加载这个脚本之前,我们先用Wireshark抓一些数据包来看一下SPIKE发送的数据。我的Vulnserver目标副本正在监听192.168.56.101服务器的9999端口。我们用以下命令筛选抓包数据,忽略其他数据。输入内容如下:
host 192.168.56.101 and tcp port 9999
开启Wireshark抓包引擎,开始SPIKE模糊测试,所用的命令如下所示。(假设用的系统为BackTrack,SPIKE目录为 /pentest/fuzzers/spike,vscommand.spk文件被保存到当前工作目录)。若是你自己下载SPIKE,generic_send_tcp位于SPIKE/SPIKE/src目录。
root@bt4r1vm:~/vulnserver# /pentest/fuzzers/spike/generic_send_tcp 192.168.56.101
9999 vscommand.spk 0 0