详细介绍了fuzzing 工具spike自动化挖掘漏洞的过程
使用下拉框选项,只显示我们的fuzzing数据(红色的那些),保存数据到磁盘上-我保存数据到、tmp/trun-data.txt文件中。
现在我们已经有了引起程序崩溃数据的拷贝,让我们再次向程序发送这些数据,看是否会再次引起崩溃生成。目前Vulnserver服务器还处在崩溃中,因此我们需要将其重启。在Ollydby调试器中选择Debug-Restart重启程序,点击F9(或者Debug-Run/Play)运行程序。重启Wireshark抓包程序(Capture-Restart),清空所有过滤条件(Clear)。
从伴随TRUN命令的信息来看,似乎是一长串“A”与一些其他字符附加在开始。在linux中我们使用sed命令来用空替换A,来看清楚除A外,还是什么字符在这个信息里。
root@bt4r1vm:~/fuzzing# sed 's/A//g' /tmp/trun-data.txt
TRUN /.:/root@bt4r1vm:~/fuzzing#
文本“TRUN /.:/”似乎是除了”A”之外的其他字符串()。下面这个脚本显示,在文件trun-data.txt后面,没有添加任何新内容。我们可以用wc -m来计算sed命令输出文本的长度,如下:
root@bt4r1vm:~/fuzzing# sed 's/A//g' /tmp/trun-data.txt | wc -m
9
只有9个字符长,现在让我们检查整个文件的长度-包括“A”字符串。
root@bt4r1vm:~/fuzzing# wc -m /tmp/trun-data.txt
5009 /tmp/trun-data.txt
整个trun-data.txt文本5009个字符长。基本上就是“TRUN /.:/”字符串后面加上5000个“A”组成的。
我们使用如下Perl代码将数据发送给程序,这样你就可以通过我大量注释看明白是怎么回事。
#!/usr/bin/perl
use IO::Socket;
if ($ARGV[1] eq '') {