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
Strumenti/GitHubGitHub/thomasfady/cve-2020-25867
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e Formazione
GitHubthomasfady/cve-2020-25867

CVE-2020-25867

Exploit proof-of-concept per CVE-2020-25867 che dimostra il bypass del type juggling di PHP dell'autenticazione della chiave di condivisione del calendario di SoPlanning.

Vedi Repository
14 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-2020-25867 : Bypass della chiave di condivisione di SoPlanning

Informazioni

  • Versione vulnerabile : 1.46.01
  • Versione corretta : 1.47 e successive
  • CVE : CVE-2020-25867

Cronologia

  • 26/06/2020 : Questo report di vulnerabilità è stato inviato al venditore
  • 21/07/2020 : La vulnerabilità è stata corretta

Rischi

Il sistema della chiave di condivisione è vulnerabile a un attacco di PHP Type Juggling, che consente a un utente malintenzionato di accedere al contenuto del calendario senza conoscere la chiave di condivisione.

Requisiti

Per essere vulnerabile, la chiave di condivisione del calendario deve essere abilitata.

EnableSharingKey

Una volta abilitata questa condivisione, un utente può accedere al calendario senza autenticazione utilizzando la chiave di condivisione.

NormalBehavior

Ovviamente, se la chiave è falsa, l'accesso è negato.

Sfruttamento

La convalida della chiave è nel file "includes/header.inc"

root@kitploit:~
if ( CONFIG_SOPLANNING_OPTION_ACCES == 2 && isset($_GET['public']) && isset($_GET['cle']))
{
  if (strcmp($_GET['cle'],CONFIG_SECURE_KEY)==0)
  {
    $_SESSION['public']=1;
    $_SESSION['user_id']='publicspl';
  }
}

La funzione strcmp viene utilizzata con un confronto non rigoroso. Il risultato di questo confronto dipende da quanto segue: PHP type comparison tables

Il risultato della funzione strcmp è descritto nella documentazione: [strcmp]'https://www.php.net/manual/en/function.strcmp.php)

Restituisce < 0 se str1 è minore di str2; > 0 se str1 è maggiore di str2, e 0 se sono uguali.

Questa funzione restituisce "NULL" se uno dei parametri è un array.

Seguendo le PHP type comparison tables, il confronto non rigoroso tra "NULL" e 0 è true

Pertanto, se $_GET['cle'] è un array, il risultato della condizione è true e l'accesso è autorizzato.

Questo link definirà $_GET['cle'] come un array: https://demo.soplanning.org/planning.php?public=1&cle[]=

Exploit

L'accesso è concesso come "Invité"

Correzione

Per correggere questa vulnerabilità, è possibile utilizzare un confronto rigoroso:

root@kitploit:~
if ( CONFIG_SOPLANNING_OPTION_ACCES == 2 && isset($_GET['public']) && isset($_GET['cle']))
{
  if (strcmp($_GET['cle'],CONFIG_SECURE_KEY)===0)
  {
    $_SESSION['public']=1;
    $_SESSION['user_id']='publicspl';
  }
}

Oppure il confronto può essere effettuato senza la funzione strcmp.

root@kitploit:~
if ( CONFIG_SOPLANNING_OPTION_ACCES == 2 && isset($_GET['public']) && isset($_GET['cle']))
{
  if ($_GET['cle'] === CONFIG_SECURE_KEY)
  {
    $_SESSION['public']=1;
    $_SESSION['user_id']='publicspl';
  }
}
Scarica lo strumento