手机版

Fuzzing-用SPIKE挖掘漏洞(12)

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

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

2、然后我们创建一个包装程序,它将用generic_send_tcp解释器运行每一个SPK文件。在理想状态下,包装程序可以从任何一个script文件开始;当 generic_send_tcp向关闭的端口发送信息时,它可以为我们提供一些有用的信息。(用来表示程序发送数据失败)

3、测试框架启动后,我们可以重复下面的步骤,知道我们停止fuzzing:

在调试器中加载程序,在Wireshark中开启一个信息的数据捕获实例;

从上次离开的位置继续运行wrapper程序,它将针对目标程序一直运行下去,

直到遇到崩溃;

当wrapper程序停止,我们在调试器中检查程序运行状态,来自程序的命令行

输出与抓包的数据可以让我们判定是什么引起了程序的崩溃。

一旦我们去顶你问题数据,我们可以将其插入exploit框架,再次针对目标程

序发送测试数据,看程序崩溃是否可重现。

重复工作,直到fuzzing程序结束。

首先,生成合适的SPIKE脚本文件。在Linux fuzzing 系统上新建目录,将下面内容拷到“00help.spk”文件中去。

printf("HELP 00help.spk : "); //print to terminal command and filename

s_readline(); //print received line from server

s_string("HELP "); // send "HELP " to program

s_string_variable("COMMAND"); //send fuzzed string

相比最后生成的SPIKE文件,我们已经向其中添加里一些新的行。一开始,用C语言的打印函数将信息打印到终端界面,当fuzzing脚本中断的时候,这些信息可以标示本脚本命令的身份。我们把要fuzzing的命令和脚本名称放到括号内。下一条命令中s_string添加一个静态字符串“HELP ”到SPIKE发送。(注意HELP之后的空格,这与命令HELP是有区别的)

脚本的目的就是想HELP命令的参数插入fuzz数据,让Vulnserver反馈大量相关的信息,来让我们看明白发生了什么。

我们用基础模板生成SPIKE脚本,测试Vulnserver的每个命令。使用命令列表,我们可以批量测试文件如: 01stats.spk, 02rtime.spk, 03ltime.spk。我们可以定义连续的文件名,提供一简单定位断点的方法。

为了避免我们忘了那些在协议分析会话中发现的可支持命令,这再叨叨一次。

HELP

STATS [stat_value]

RTIME [rtime_value]

LTIME [ltime_value]

SRUN [srun_value]

TRUN [trun_value]

GMON [gmon_value]

GDOG [gdog_value]

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