fuzz测试
Fuzz测试就是通过构造不规则的输入,从而触发程序的某种bug
常规的漏洞挖掘包括三种:
- 白盒代码审计
- 灰盒逆向工程
- 黑盒测试
Fuzz属于黑盒测试
Fuzz测试也叫做模糊测试
通过输入非法字段,并观察软件是否异常来实现
一方面可以向软件输入非法字段,也可以通过像网络服务发送异常报文
在发送了异常的报文之后,如果没有收到回复,那就推断这个服务可能存在bug。
测试的对象是一个FTP服务器,利用网络报文来进行测试
使用lftp登录ftp服务器之后,可以使用put指令将文件上传到服务器。
语法
put [-E] [-a] [-c] [-O base] lfile [-o rfile]
-o 指定输出文件的名字,不指定则使用原来的名字
-c 如果失败,持续获取
-E 获取之后,删除源文件
-a 使用ascii模式
-O 指定输出文件存放的目录
实例
- 输入超长的ftp用户名,被测设备应该表现正常
- 正常登录ftp后,对于ftp命令“mdelete、cd、mkdir、cwd、mdir、mput、rename”输入超长参数,被测设备应该表现正常
- 根据测试设计相应的测试脚本,测试脚本使用python语言编写,脚本主要由三个函数组成
m get_fuzz_str()函数 用于生成fuzz str 即异常报文的关键部分,在本例中用于生成超长字符串‘aaaaaaaa……‘
m fuzz_FTP_usr()函数,用于发送超长的用户名 将超长的字符串4串拼接在一起,作为user的参数发送给服务器。
m fuzz_FTP_cmd()函数,用于发送超长的命令,对每一个命令构造异常的参数,然后发送给服务器。
如果被测设备表现正常没有发现问题
则有安全漏洞。