详细介绍了fuzzing 工具spike自动化挖掘漏洞的过程
KSTET [kstet_value]
GTER [gter_value]
HTER [hter_value]
LTER [lter_value]
KSTAN [lstan_value]
EXIT
下面是针对命令参数fuzzing的另一个例子,测试的是STATS命令(01stats.spk)。 printf("STATS 01stats.spk : "); //print to terminal command and filename
s_readline(); //print received line from server
s_string("STATS "); // send "STATS " to program
s_string_variable("COMMAND"); //send fuzzed string
现在为每一个命令生成测试脚本。这样做了后,就会生成如下文件。最好参照本指南,用相同的命令生成了连续的文件命名。
root@bt4r1vm:~/fuzzing# ls *.spk
00help.spk 03ltime.spk 06gmon.spk 09gter.spk 12kstan.spk
01stats.spk 04srun.spk 07gdog.spk 10hter.spk 13exit.spk
02rtime.spk 05trun.spk 08kstet.spk 11lter.spk
现在,我们生成了大量SPIKE脚本文件,我们还需要一个打包程序以使它们更方便运行,像下面这样:
#!/usr/bin/perl
# Simple wrapper to run multiple .spk files using generic_send_tcp
$spikese = '/pentest/fuzzers/spike/generic_send_tcp';
if ($ARGV[4] eq '') {
die("Usage: $0 IP_ADDRESS PORT SKIPFILE SKIPVAR SKIPSTRnn");
}
$skipfiles = $ARGV[2];
@files = <*.spk>;
foreach $file (@files) {
if (! $skipfiles) {
if (system("$spikese $ARGV[0] $ARGV[1] $file $ARGV[3] $ARGV[4]") ) {
print "Stopped processing file $filen";
exit(0);
}
} else {
$skipfiles--;
}