使用afl-fuzz测试openssl_1_0_1失败

时间:2019-04-18 14:02:36

标签: security fuzzing afl-fuzz

我正在学习使用afl和新手。我使用此cve-2015-1788示例,但失败了。

我这样做:

git clone https://github.com/openssl/openssl
cd openssl
git checkout OpenSSL_1_0_1
CC=afl-gcc ./config no-ec2m
make

openssl版本:

root@597a0b42b8c6:/src/openssl# ./apps/openssl version
WARNING: can't open config file: /usr/local/ssl/openssl.cnf
OpenSSL 1.0.1 14 Mar 2012

然后我测试fuzzing_openssl.c

#include <stdio.h>
#include <stdint.h>
#include <stdio.h>
#include <assert.h>

#include <openssl/ec.h>

int main(int argc, char **argv)
{
  unsigned char buf[1024];
  assert(argc == 2);
  FILE *f = fopen(argv[1], "rb");
  assert(f);
  size_t r = fread(buf, 1, 1024, f);
  printf("read = %zu\n", r);
  unsigned char *ptr = buf;
  EC_GROUP *ecg = d2i_ECPKParameters(NULL, &ptr, r);
  if (ecg)
    EC_GROUP_free(ecg);
  return 0;
}

我编译了

enter image description here

我连续运行了许多天,但是没有崩溃,我怀疑然后再运行

./fuzzing_openssl    broken-cert.der

它输出

root@597a0b42b8c6:/src/fuzzing# ./fuzzing_openssl broken-cert.der 
read = 598

它不花费很多时间,有什么问题吗?首先谢谢你。

对于CVE-2015-1788

  

在处理ECParameters结构时,OpenSSL输入无限   如果指定的曲线在特殊格式的二进制文件上则循环   多项式字段。

     

这可用于对任何以下系统执行拒绝服务   处理公钥,证书请求或证书。这个   包括TLS客户端和具有客户端身份验证的TLS服务器   启用。

     

此问题影响OpenSSL版本:1.0.2和1.0.1。最近的1.0.0和   0.9.8版本不受影响。 1.0.0d和0.9.8r及以下版本会受到影响。

     

OpenSSL 1.0.2用户应升级到1.0.2b OpenSSL 1.0.1用户   应该升级到1.0.1n OpenSSL 1.0.0d(及更低版本),用户应该   升级到1.0.0s OpenSSL 0.9.8r(及更低版本),用户应升级到   0.9.8zg

     

约瑟夫于2015年4月6日向OpenSSL报告了此问题   比尔·皮克斯顿该修复程序由OpenSSL的Andy Polyakov开发   开发团队。

     

http://jbp.io/2015/06/11/cve-2015-1788-openssl-binpoly-hang/

0 个答案:

没有答案