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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2022-46169 — استغلال لـ CVE-2022-46169 | Kitploit
أدوات/GitHubGitHub/0xn7y/cve-2022-46169
المصادقة والترخيصتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالقيادة والسيطرة
GitHub0xn7y/cve-2022-46169

CVE-2022-46169

استغلال لـ CVE-2022-46169

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2022-46169

استغلال ثغرة CVE-2022-46169 في إصدارات Cacti قبل 1.2.3

هنا تتحقق الدالة remote_client_authorized من اسم مضيف العميل في جدول poller عند الإدخال

root@kitploit:~
function remote_client_authorized() {
   // ...
   $client_addr = get_client_addr();
   // ...
   $client_name = gethostbyaddr($client_addr);
   // ...
   $pollers = db_fetch_assoc('SELECT * FROM poller', true, $poller_db_cnn_id);
   foreach($pollers as $poller) {
      if (remote_agent_strip_domain($poller['hostname']) == $client_name) {
         return true;
      // ...

تُستخدم الدالة get_client_addr للحصول على عنوان العميل، والذي يمكن للمهاجم تعديله عند تحديد عنوان IP. تستخدم IP لحله إلى اسم المضيف المقابل وتتحقق مما إذا كان جدول poller يحتوي على إدخال بهذا الاسم المضيف لتأكيد العميل.

root@kitploit:~
<?php
// ...
function get_client_addr($client_addr = false) {
   $http_addr_headers = array(
       // ...
       'HTTP_X_FORWARDED',
       'HTTP_X_FORWARDED_FOR',
       'HTTP_X_CLUSTER_CLIENT_IP',
       'HTTP_FORWARDED_FOR',
       'HTTP_FORWARDED',
       'HTTP_CLIENT_IP',
       'REMOTE_ADDR',
   );

   $client_addr = false;
   foreach ($http_addr_headers as $header) {
      // ...
      $header_ips = explode(',', $_SERVER[$header]);
      foreach ($header_ips as $header_ip) {
         // ...
         $client_addr = $header_ip;
         break 2;
      }
   }
   return $client_addr;
}

لذا فإن تعديل رأس الطلب يسمح لنا بتجاوز المصادقة

وهنا يتم استخدام إدخال المستخدم غير المنقى لتنفيذ أمر خارجي

root@kitploit:~
// ... retrieve poller items from database ...

foreach($items as $item) {
   switch ($item['action']) {
   // ...
   case POLLER_ACTION_SCRIPT_PHP: /* script (php script server) */
      // ...
      $cactiphp = proc_open(read_config_option('path_php_binary') . ' -q ' . $config['base_path'] . '/script_server.php realtime ' . $poller_id, $cactides, $pipes);

الإصلاح

تجاوز المصادقة

قم بتكوين رؤوس HTTP التي يجب استخدامها عند تحديد عنوان IP للعميل

rec

نظرًا لأن قيمة poller_id يجب أن تكون عددًا صحيحًا، يجب التحقق من صحتها قبل تمريرها إلى proc_open

تنزيل الأداة