Использовать afl-fuzz для тестирования openssl_1_0_1 не удалось - PullRequest
0 голосов
/ 18 апреля 2019

Я учусь использовать 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

Об этой проблеме сообщило OpenSSL 6 апреля 2015 года Джозеф Быр-Pixton. Исправление было разработано Энди Поляковым из OpenSSL команда разработчиков.

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

...