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

Репозиторий
122 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

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-адреса клиента.

рекомендация

так как значение poller_id должно быть целым числом, проверяйте его перед передачей в proc_open.

Скачать инструмент