Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
LibPNG_OSS-Fuzz — Проект исследования безопасности фаззинга libpng с помощью OSS-Fuzz. Включает анализ начального корпуса, пользовательские фаззеры для чтения/записи и доказательство концепции эксплуатации уязвимости CVE-2014-9495. | Kitploit
Инструменты/GitHubGitHub/enessar/libpng_oss-fuzz
Анализ уязвимостейАнализ КодаЭксплуатацияФаззингАнализ Бинарных ФайловОбучение и Образование
GitHubenessar/libpng_oss-fuzz

LibPNG_OSS-Fuzz

Проект исследования безопасности фаззинга libpng с помощью OSS-Fuzz. Включает анализ начального корпуса, пользовательские фаззеры для чтения/записи и доказательство концепции эксплуатации уязвимости CVE-2014-9495.

Репозиторий
19 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Фаззинг и анализ уязвимостей libpng

Групповой проект по исследованию безопасности

О фаззинге: Фаззинг — это автоматизированная техника тестирования ПО, при которой на вход программы подаются недопустимые, неожиданные или случайные данные для обнаружения ошибок и уязвимостей. Фаззинг с управлением покрытием использует обратную связь по покрытию кода для интеллектуального исследования различных путей выполнения.

Об OSS-Fuzz: OSS-Fuzz — это служба непрерывного фаззинга Google для открытого ПО. Она использует LibFuzzer и другие движки фаззинга для автоматического тестирования критически важных открытых проектов и сообщения об уязвимостях.

Этот проект демонстрирует фаззинг с управлением покрытием, анализ покрытия кода и эксплуатацию уязвимостей с использованием фреймворка Google OSS-Fuzz на библиотеке libpng.

Цель: libpng v1.6.48 (фаззинг), v1.5.20 (эксплуатация)

Подробная методология и полный отчёт: см. report.pdf
Полные инструкции: см. Instructions.md


Сводка результатов

Часть 1: Анализ влияния начального корпуса

МетрикаС корпусомБез корпусаУлучшение
Покрытие строк41.83%24.76%+17.07%
Покрытие ветвлений35.49%21.03%+14.46%
Покрытие функций50.75%34.75%+16.00%

сравнение покрытия

Часть 3: Улучшения собственных фаззеров

Улучшение 1 — Улучшенный фаззер чтения (submit_improve1)

  • Покрытие строк: 33.02% → 34.08% (+1.06%)
  • Добавлены вызовы API преобразования PNG и тестирование граничных случаев
  • +74 строки в pngread.c, +73 строки в pngtrans.c

Улучшение 2 — Фаззер записи (submit_improve2)

  • Создан новый фаззер для кодирования PNG (операции записи)
  • Функции записи: 0% → 30-50% покрытие
  • +1 270 строк ранее не тестированного кода покрыто

сравнение покрытия 2

Часть 4: Эксплуатация CVE-2014-9495

Успешно эксплуатировано переполнение кучи в libpng v1.5.20:

  • Целочисленное переполнение при обработке чересстрочного PNG Adam7
  • PoC вызывает обнаружение AddressSanitizer
  • Скрипт: part4/run.poc.sh

Достижения

  • Влияние начального корпуса: улучшение покрытия на +17%
  • Собственные фаззеры: 2 новых варианта (улучшенный фаззер чтения + фаззер записи)
  • Новое покрытие: +1 270 строк ранее не тестированного кода
  • Эксплуатация CVE: успешный PoC для CVE-2014-9495

Структура проекта

root@kitploit:~
├── part1/               # Анализ влияния начального корпуса
│   ├── run.w_corpus.sh         # Запуск с начальным корпусом
│   ├── run.w_o_corpus.sh       # Запуск без начального корпуса
│   └── report/                 # Отчёты о покрытии
├── part3/               # Улучшения собственных фаззеров
│   ├── improve1/               # Улучшенный фаззер чтения
│   └── improve2/               # Новый фаззер записи
└── part4/               # Эксплуатация CVE-2014-9495
    ├── run.poc.sh              # Запуск эксплойта
    └── write_exploit.c         # Код PoC

Быстрый старт

root@kitploit:~
# Part 1: Fuzzing experiments (4 hours each)
cd part1
./run.w_corpus.sh    # or ./run.w_o_corpus.sh

# Part 3: Test improvements (4 hours each)
cd part3/improve1 && ./run.improve1.sh
cd part3/improve2 && ./run.improve2.sh

# Part 4: Exploit CVE
cd part4 && ./run.poc.sh

Просмотр отчётов о покрытии:

root@kitploit:~
firefox part1/report/w_corpus/linux/index.html

Участники группы

Этот проект по исследованию безопасности выполнен в соавторстве:

  • Mahdi Atallah
  • Rassene M'Sadaa
  • Yannik Krone
  • Yonathan Lanzmann
Скачать инструмент