手机版

Fuzzing-用SPIKE挖掘漏洞(4)

发布时间:2021-06-08   来源:未知    
字号:

详细介绍了fuzzing 工具spike自动化挖掘漏洞的过程

SPIKE脚本命令

为了写一个SPIKE脚本,我们首先需要知道一些可用的命令以及它们做了些什么。 如果你想了解SPIKE的命令组成,我们通过检查如.spk或spike.h等文件来探索发现。Spike.h文件会列举出可用的原函数(命令),.spk文件提供关于这些命令使用的例子。

我们要记住的是spike脚本功能只支持spike.h的子集。因此,你只能使用SPIKE的内置命令。

为了避免探索这些文件的麻烦,我在下边将列出一些更为有用的SPIKE的原始脚本。spike.h文件由C语言写成,它用C语言的语法与数据结构列出了每个SPIKE命令。对于那些不熟悉C的人来说,我通过用展示例子的方式来使你更加容易的复用代码,写出你自己的脚本。“//”在C中是用来加备注的(编译器在编译程序时将忽略//之后内容),所以接下来我会用这种方式为每个命令提供额外的解释 。当然,你可以忽略的这些解释或者添加自己的解释,这些内容都会被SPKE忽略掉。

接下来我会断断续续的介绍字符串、二进制数据、块以及其他有用的结构。

Strings字符串

strings命令提供给我们向SPIKES添加ASCII字符的方式。同样是字符串命令的 s_string_variable函数,事实上是一个向SPIKE添加fuzz 字符串的非常重要的命令。

s_string(“string”);//作为“SPIKE”的一部分,简单的输出字符“string”

s_string_repeat(“string”,200);// 重复字符“string” 200次

s_string_variable(“string”);//向你的SPKIE中插入一段字符串,字符串“string”

将被用作这个变量的第一次循环,以及其他循环中的s_string_variables变量。

Binary Data二进制数据

binary命令提供了一种向SPIKES添加二进制数据的方法。它们可以支持各种各样的定制的二进制数据。

s_binary(“\x41″);//插入二进制数据,16进制表示为0x41,ASCII码为A

s_binary_repeat(“\x41″, 200);//插入二进制数据0x14 200次

对于SPIKE的二进制命令,相同数据不同书写方式都是可用的。为了输出跟上面相同的16进制字符,我们可以用“41”或者“0x41”,我们还可以混合这些值(如:用“410x41\x42”来输出ASCII码“AAB”)。任何空格都将被忽略,所有这些方便剪切/粘贴的数据都来自于这些用16进制表示的应用程序,如包捕获工具/调试器等。

Defining Blocks定义块

Fuzzing-用SPIKE挖掘漏洞(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)