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

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

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

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

دليل الأدوات

الفئات

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

CVE-2022-43343

إثبات المفهوم لـ (CVE-2022-43343)

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

الأكثر شعبية

عرض الكل →

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

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

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

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

الوصف الخاص بـ CVE-2022-43343

تم اكتشاف أن N-Prolog v1.91 يحتوي على ثغرة تجاوز سعة المخزن المؤقت العمومي في الدالة gettoken() في Main.c

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

لإعادة إنتاج الثغرة، قم بتنزيل إصدار معرّض للثغرة من N-Prolog (v1.91) وقم بتجميع المشروع:

root@kitploit:~
git clone https://github.com/sasagawa888/nprolog.git
cd nprolog
git checkout ae7cc9bf6087cfcb57baadbe59f5005c6dc0f09c
make

بعد تجميع المشروع، يمكننا توجيه N-Prolog إلى ملف إثبات المفهوم الخاص بنا المرفق في هذا المستودع (CVE-2022-43343_crash):

root@kitploit:~
./npl -s CVE-2022-43343_crash

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

root@kitploit:~
segmentation fault  ./npl -s CVE-2022-43343_crash

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

root@kitploit:~
CC   = gcc
LIBS = -lm -ldl -fsanitize=address


LIBSRASPI = -lm -ldl -lwiringPi -fsanitize=address -g
INCS =  
CFLAGS = $(INCS) -Wall -O3 -fsanitize=address
DEST = /usr/local/bin

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

root@kitploit:~
make clean
make

شغّل npl في وضع السكربت ضد الملف الخبيث:

root@kitploit:~
./npl -s CVE-2022-43343_crash

يُبلغ ASAN عن كتابة غير صالحة بحجم 1 إلى متغير عمومي في الدالة gettoken() عند السطر 1022 في parser.c:

root@kitploit:~
==291696==ERROR: AddressSanitizer: global-buffer-overflow on address 0x56107f6d54b0 at pc 0x56107f651925 bp 0x7ffc7a408e10 sp 0x7ffc7a408e08
WRITE of size 1 at 0x56107f6d54b0 thread T0
    #0 0x56107f651924 in gettoken /dev/shm/nprolog/parser.c:1022
    #1 0x56107f656924 in parser /dev/shm/nprolog/parser.c:40
    #2 0x56107f6624ca in b_consult /dev/shm/nprolog/builtin.c:1561
    #3 0x56107f642d72 in main /dev/shm/nprolog/main.c:276
    #4 0x7f8c85646189 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #5 0x7f8c85646244 in __libc_start_main_impl ../csu/libc-start.c:381
    #6 0x56107f6432c0 in _start (/dev/shm/nprolog/npl+0x162c0)

0x56107f6d54b0 is located 48 bytes to the left of global variable 'record_pt' defined in 'main.c:24:5' (0x56107f6d54e0) of size 4
0x56107f6d54b0 is located 0 bytes to the right of global variable 'stok' defined in 'main.c:27:7' (0x56107f6d53a0) of size 272
SUMMARY: AddressSanitizer: global-buffer-overflow /dev/shm/nprolog/parser.c:1022 in gettoken
Shadow bytes around the buggy address:
  0x0ac28fed2a40: f9 f9 f9 f9 04 f9 f9 f9 f9 f9 f9 f9 04 f9 f9 f9
  0x0ac28fed2a50: f9 f9 f9 f9 04 f9 f9 f9 f9 f9 f9 f9 04 f9 f9 f9
  0x0ac28fed2a60: f9 f9 f9 f9 04 f9 f9 f9 f9 f9 f9 f9 04 f9 f9 f9
  0x0ac28fed2a70: f9 f9 f9 f9 00 00 00 00 00 00 00 00 00 00 00 00
  0x0ac28fed2a80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0ac28fed2a90: 00 00 00 00 00 00[f9]f9 f9 f9 f9 f9 04 f9 f9 f9
  0x0ac28fed2aa0: f9 f9 f9 f9 00 00 00 00 00 00 00 00 00 00 00 00
  0x0ac28fed2ab0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0ac28fed2ac0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0ac28fed2ad0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x0ac28fed2ae0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
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
==291696==ABORTING

المراجع

  • https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-43343
  • https://learn.microsoft.com/en-us/cpp/sanitizers/error-global-buffer-overflow?view=msvc-170
تنزيل الأداة