Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2022-46169 — Exploit per CVE-2022-46169 | Kitploit
Strumenti/GitHubGitHub/0xn7y/cve-2022-46169
Autenticazione e AutorizzazioneAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingCommand and Control
GitHub0xn7y/cve-2022-46169

CVE-2022-46169

Exploit per CVE-2022-46169

Vedi Repository
122 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2022-46169

Exploit per CVE-2022-46169 versioni di Cacti precedenti alla 1.2.3

Qui remote_client_authorized controlla il nome host del client nella tabella poller per l'accesso

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;
      // ...

La funzione get_client_addr viene utilizzata per ottenere l'indirizzo del client, che può essere modificato dall'attaccante nel determinare l'indirizzo IP. Usa l'IP per risolverlo nel nome host corrispondente e verifica se la tabella poller contiene una voce con questo nome host autorizzando il client.

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;
}

quindi modificare l'intestazione della richiesta ci permette di bypassare l'autenticazione

E qui un input utente non sanificato viene utilizzato per eseguire un comando esterno

root@kitploit:~
// ... recupera gli elementi poller dal 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);

Fix

bypass autenticazione

configurare quali intestazioni HTTP devono essere utilizzate nel determinare l'IP del client

rec

poiché il valore di poller_id deve essere un intero, validarlo prima di passarlo a proc_open

Scarica lo strumento