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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
hfs2 — CVE-2024-23692 | إصلاح ثغرة RCE في HFS 2.3m/2.4-RC07 | Kitploit
أدوات/GitHubGitHub/wgetnz/hfs2
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقأداة الوصول عن بعد
GitHubwgetnz/hfs2

hfs2

CVE-2024-23692 | إصلاح ثغرة RCE في HFS 2.3m/2.4-RC07

عرض المستودع
2منذ 6 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

مقدمة

يمكنك استخدام HFS (HTTP File Server) لإرسال الملفات واستلامها. إنه يختلف عن مشاركة الملفات التقليدية لأنه يستخدم تقنية الويب. كما يختلف عن خوادم الويب التقليدية لأنه سهل الاستخدام للغاية ويعمل مباشرةً "خارج الصندوق".

سيتيح لك نظام الملفات الافتراضي مشاركة حتى ملف واحد بسهولة.


الأمان — CVE-2024-23692

نظرة عامة على الثغرة

البندالقيمة
رقم CVECVE-2024-23692
الإصدارات المتأثرةHFS 2.3m وHFS 2.4.0 RC07 فما دون
نوع الثغرةتنفيذ التعليمات البرمجية عن بُعد دون مصادقة (Unauthenticated RCE)
درجة CVSS9.8 حرجة
متجه الهجومقابل للوصول عبر الشبكة، دون مصادقة، ودون تفاعل المستخدم

مبدأ الثغرة

عند معالجة محرك القوالب في HFS لماكرو {.?search.} (الذي يقرأ معاملات الاستعلام من URL)، يقوم باستدعاء applyMacrosAndSymbols2() بشكل متكرر على القيمة المُعادة، مما يؤدي إلى تنفيذ سلسلة يتحكم فيها المستخدم ككود قالب.

تتكون سلسلة الهجوم من أربع خطوات:

root@kitploit:~
1. 构造包含 %url% 的 search 参数
         ↓
2. %url% 展开为 macroQuote(完整URL) = {:url_including_payload:}
         ↓
3. %password% 展开为空字符串,导致 {:...:} 引用块提前关闭
         ↓
4. 引用块外的 {.exec|cmd.} 被宏引擎执行 → RCE

مثال POC (لأغراض البحث الأمني فقط):

root@kitploit:~
GET /?n=%0A&cmd=whoami&search=%25xxx%25url%25:%password%}{.exec|{.?cmd.}|timeout=15|out=abc.}{.?n.}{.?n.}RESULT:{.?n.}{.^abc.}===={.?n.} HTTP/1.1

خطة الإصلاح

ملف الإصلاح: scriptLib.pas

الدالة الأساسية: noMacrosAllowed() (الأسطر 109–123)

root@kitploit:~
function noMacrosAllowed(s:string):string;
// prevent hack attempts
begin
  // 步骤 1:将所有宏标记的首字符替换为 HTML 实体
  //   {.  →  {.       .}  →  .}
  //   {:  →  {:       :}  →  :}
  //   |   →  |
  repeat
    i := findMacroMarker(s, i);
    if i = 0 then break;
    replace(s, '&#' + intToStr(charToUnicode(s[i])) + ';', i, i);
  until false;

  // 步骤 2:将 %symbol% 形式的符号引用替换为 HTML 实体
  //   %url%       →  %url%
  //   %password%  →  %password%
  s := reReplace(s, '%([-a-z0-9]+)%', '%$1%', 'mi');
  result := s;
end;

مواضع الاستدعاء: يتم تمرير جميع المدخلات التي يتحكم فيها المستخدم عبر هذه الدالة قبل إعادتها إلى محرك القوالب:

موضع الاستدعاءنطاق الحماية
السطر 548 في urlVar()جميع معاملات استعلام URL {.?name.}
السطر 698قراءة متغيرات القالب
السطر 1549قيم الكوكيز
السطر 2089القيم المفكوكة من URL
السطر 2165ترويسات طلبات HTTP
السطر 2173معاملات نماذج POST

نتيجة الإصلاح: بعد معالجة معامل search في POC، يتم تحويل جميع علامات الماكرو ومراجع الرموز إلى كيانات HTML، ولا يمكنها بعد الآن تشغيل محرك الماكرو.


ملاحظات المطوّر

طُوّر في البداية عام 2002 باستخدام Delphi 6، والآن باستخدام Delphi 10.3.3 (الإصدار المجتمعي). يتم توليد الأيقونات من http://fontello.com/ . استخدم fontello.json لإجراء تعديلات إضافية.

بالنسبة للقالب الافتراضي، نستهدف التوافق مع Chrome 49 لأنه أحدث إصدار يعمل على Windows XP.

المكتبات المستخدمة

  • ICS v8.64 من إعداد François PIETTE
  • TRegExpr v0.952b من إعداد Andrey V. Sorokin
  • JEDI Code Library v2.7
  • Kryvich's Delphi Localizer v4.1
تنزيل الأداة