Я учусь использовать 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](https://i.stack.imgur.com/225ZW.png)
Я бегаю нечетко много дней, но без сбоев, сомневаюсь, тогда бегу
./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/