
يوضح هذا السيناريو دليلاً على المفهوم (PoC) لاستغلال ثغرة قراءة الملفات في مكتبة iconv، كما هو مفصل في مدونة Ambionics Security على الرابط https://www.ambionics.io/blog/iconv-cve-2024-2961-p1.
يُظهر هذا السكريبت كيفية استغلال ثغرة في الأنظمة التي تستخدم مكتبة iconv عند سوء معالجتها لتحويلات ترميز الأحرف، كما هو موصوف في CVE-2024-2961. تسمح هذه الثغرة لمهاجم بقراءة أي ملف من الخادم عن طريق استغلال سلاسل مرشحات PHP والتعامل الخاطئ مع الترميز.
يقوم السكريبت بأتمتة عملية ربط حمولة معدّة، واسترداد الملف الناتج، وعرض محتوياته. يعتمد على البحث المفصل في المقال: Iconv CVE-2024-2961: استغلال تحويلات ترميز الأحرف.
يتبع السكريبت الخطوات التالية:
إنشاء الحمولة
يقوم بإنشاء حمولة سلسلة مرشحات PHP تستخدم تحويلات ترميز iconv لقراءة أي ملف على الخادم. صُممت هذه الحمولة لتجاوز القيود العادية، مما يسمح بالوصول إلى ملفات مثل /etc/passwd أو ملفات حساسة أخرى.
رفع الملف
يُرسل طلب POST إلى نقطة نهاية admin-ajax.php على الخادم المستهدف، محاكياً رفع صورة. يتم إخفاء الحمولة داخل الطلب بحيث يعالجها الخادم كما لو كانت ملفاً شرعياً.
تنزيل الملف
بعد رفع الحمولة، يقوم السكريبت بتنزيل الملف الذي يحتوي الآن على محتويات الملف المستهدف. أخيراً، يستخرج ويعرض هذه المحتويات.
requests (قم بتثبيتها باستخدام pip install requests)iconv و PHP.استنساخ المستودع أو تنزيل السكريبت:
git clone https://github.com/kyotozx/CVE-2024-2961-Remote-File-Read.git
cd CVE-2024-2961-Remote-File-Read
تشغيل السكريبت:
python3 lfi.py
اتبع المطالبات:
/etc/passwd).1).ما يفعله السكريبت:
Remote File Read Exploitation - CVE-2024-2961
Enter the path of the file you want to read (e.g., /etc/passwd): /etc/passwd
Enter a numeric ID for the upload (e.g., 1): 1
File uploaded successfully: http://blog.bigbang.htb/wp-content/uploads/2025/01/1-50.png
File content:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
...
هذا السكريبت مخصص فقط لأغراض تعليمية واختبار مرخص. لا تستخدمه على أنظمة دون إذن صريح.