fuzz测试


fuzz测试

Fuzz测试就是通过构造不规则的输入,从而触发程序的某种bug
常规的漏洞挖掘包括三种:

  1. 白盒代码审计
  2. 灰盒逆向工程
  3. 黑盒测试
    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()函数,用于发送超长的命令,对每一个命令构造异常的参数,然后发送给服务器。
    如果被测设备表现正常没有发现问题
    则有安全漏洞。

文章作者: John Doe
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 John Doe !
  目录