Ticket #293 (closed: fixed)

Opened 10 years ago

Last modified 8 years ago

problème de sécu? $nocheck devrait être une constante

Reported by: anarcat Owned by: anarcat
Priority: normal Milestone: alternc-0.9.3
Component: Bureau: général Version: mailman-1.5
Severity: block Keywords:
Cc:

Description

la variable $nocheck devrait etre une constante. ainsi, si config_real.php est inclus par erreur, il ne peut, dans aucune circonstance, être forcé de bypasser les vérifications de sécurité.

ADDITIONAL INFORMATION: présentement, le fichier config_real.php est celui qui contrôle l'authentification et les sessions, et donc qui dénie l'accès à qui ne faut pas.

pour les scripts externes, il extiste un script config_nochk.php qui bypass les checks de sécu grâce à la variable $nocheck. cette variable est vérifiée avant de vérifier le login: si elle est 1 (un), le check est complètement bypassé:

/* Check the User identity (if required) */ if (!$nocheck) {

if (!$mem->checkid()) {

$error=$err->errstr(); include("index.php"); exit();

}

}

ceci peut poser un problème de sécurité si quelqu'un oublie de régler cette variable. la variable pourrait aussi se retrouver dans une session et être importée directement dans le scope du script si register_globals est à on.

Change History

comment:1 Changed 10 years ago by anarcat

voici les fichiers problemes:

% grep -r 'nocheck' . ./bureau/class/config.php:$nocheck=0; ./bureau/class/config_nochk.php:$nocheck=1; ./bureau/class/config_real.php:if (!$nocheck) { ./install/scripts/newone.php.~1.3.~:$nocheck=1;

egrep -r -n 'config_nochk.php' . /dev/null ./bureau/admin/domlist.php:30:require_once("../class/config_nochk.php"); ./bureau/admin/index.php:31:require_once("../class/config_nochk.php"); ./bureau/admin/mem_cm.php:31:require_once("../class/config_nochk.php"); ./bureau/admin/mem_cm2.php:31:require_once("../class/config_nochk.php"); ./bureau/class/CVS/Entries:2:/config_nochk.php/1.1/Wed May 19 14:23:06 2004 ./bureau/class/config_nochk.php:3: $Id: config_nochk.php,v 1.1 2004/05/19 14:23:06 benjamin Exp $ ./bureau/class/cryptall.php:10:include("config_nochk.php"); ./install/scripts/newone.php:35:require("/var/alternc/bureau/class/config_nochk.php"); ./modules/main:26:class/config_nochk.php ./alternc-webalizer/webalizer.cache.php:include("/var/alternc/bureau/class/config_nochk.php");

grep finished (matches found) at Thu Oct 28 00:33:41

le probleme risque d'apparaitre si d'autres scripts utilisent $nocheck.

comment:2 Changed 10 years ago by anarcat

  • Owner changed from anonymous to anarcat
  • Status changed from new to assigned

comment:3 Changed 10 years ago by anarcat

ce qu'il faudrait faire:

1- fusionner config_real.php dans config.php et enlever config_real.php 2- faire que config.php fait "nocheck" seulement si la CONSTANTE NOCHECK est definie et réglée à 1 3- faire que config_nochk.php inclus config.php après avoir défini la constante

comment:4 Changed 10 years ago by anarcat

  • Status changed from assigned to closed
  • Resolution set to fixed
  • Milestone set to 0.9.3

c'est fait.

Note: See TracTickets for help on using tickets.