Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/enessar/libpng_oss-fuzz
Vulnerability AnalysisCode AnalysisExploitationFuzzingBinary AnalysisLearning & Education
GitHubenessar/libpng_oss-fuzz

LibPNG_OSS-Fuzz

Security research project on fuzzing libpng with OSS-Fuzz. Includes seed corpus analysis, custom read/write fuzzers, and a proof-of-concept exploit for CVE-2014-9495.

저장소 보기
1210개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

libpng 퍼징 및 취약점 분석

그룹 보안 연구 프로젝트

퍼징(Fuzzing)이란: 퍼징은 프로그램에 유효하지 않거나 예상치 못한 또는 무작위 데이터를 입력으로 제공하여 버그와 취약점을 발견하는 자동화된 소프트웨어 테스트 기법입니다. 커버리지 기반 퍼징(Coverage-guided fuzzing)은 코드 커버리지 피드백을 활용하여 다양한 실행 경로를 지능적으로 탐색합니다.

OSS-Fuzz 소개: OSS-Fuzz는 Google의 오픈소스 소프트웨어 대상 지속적 퍼징 서비스입니다. LibFuzzer 및 기타 퍼징 엔진을 사용하여 중요한 오픈소스 프로젝트를 자동으로 테스트하고 취약점을 보고합니다.

이 프로젝트는 Google의 OSS-Fuzz 프레임워크를 libpng 라이브러리에 적용하여 커버리지 기반 퍼징, 코드 커버리지 분석 및 취약점 익스플로잇을 시연합니다.

대상: libpng v1.6.48 (퍼징), v1.5.20 (익스플로잇)

자세한 방법론 및 전체 보고서: report.pdf 참조
전체 지침: Instructions.md 참조


결과 요약

Part 1: 시드 코퍼스 영향 분석

지표코퍼스 있음코퍼스 없음개선
라인 커버리지41.83%24.76%+17.07%
분기 커버리지35.49%21.03%+14.46%
함수 커버리지50.75%34.75%+16.00%

coverage comparaison

Part 3: 맞춤 퍼저 개선

개선 1 - 향상된 읽기 퍼저 (submit_improve1)

  • 라인 커버리지: 33.02% → 34.08% (+1.06%)
  • PNG 변환 API 호출 및 엣지 케이스 테스트 추가
  • pngread.c에 +74줄, pngtrans.c에 +73줄

개선 2 - 쓰기 퍼저 (submit_improve2)

  • PNG 인코딩(쓰기 작업)을 위한 새로운 퍼저 생성
  • 쓰기 함수: 0% → 30-50% 커버리지
  • 이전에 테스트되지 않은 +1,270줄의 코드 커버

coverage comparaison2

Part 4: CVE-2014-9495 익스플로잇

libpng v1.5.20에서 힙 버퍼 오버플로우를 성공적으로 익스플로잇했습니다:

  • Adam7 인터레이스 PNG 처리 중 정수 오버플로우
  • PoC가 AddressSanitizer 탐지 트리거
  • 스크립트: part4/run.poc.sh

성과

  • 시드 코퍼스 영향: 커버리지 +17% 향상
  • 맞춤 퍼저: 2개의 새로운 변종(향상된 읽기 퍼저 + 쓰기 퍼저)
  • 신규 커버리지: 이전에 테스트되지 않은 +1,270줄 코드
  • CVE 익스플로잇: CVE-2014-9495에 대한 성공적인 PoC

프로젝트 구조

root@kitploit:~
├── part1/               # Seed corpus impact analysis
│   ├── run.w_corpus.sh         # Run with seed corpus
│   ├── run.w_o_corpus.sh       # Run without seed corpus
│   └── report/                 # Coverage reports
├── part3/               # Custom fuzzer improvements
│   ├── improve1/               # Enhanced read fuzzer
│   └── improve2/               # New write fuzzer
└── part4/               # CVE-2014-9495 exploitation
    ├── run.poc.sh              # Run exploit
    └── write_exploit.c         # PoC code

빠른 시작

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
도구 다운로드