jangle
21.12.2011, 15:18
Уважаемые античатовцы!
Нужна помощь в реверсинге и объяснения бага Unserialize в PHP. Имею скрипт с такой функцией
functionretrieveFromCacheArray($type,$identity,$va lidtime=0) {
if (!$this->activated) returnfalse;
$thisFile= empty($type) ?$this->jCacheDir.$identity.".php":$this->jCacheDir.$type."/".$identity.".php";
if (!empty($validtime)) {
$lastMod= @filemtime($thisFile);
if (time() > ($lastMod+($validtime*60))) returnfalse;
}
$fp= @fopen($thisFile,"r");
if ($fp&& @flock($fp,LOCK_SH)) {
$contents='';
while ($data=frea d($fp,4096)) {$contents.=$data; }
$contents=str_replace("","",$contents);
fclose($fp);
returnunserialize( $contents);
}
@fclose($fp);
returnfalse;
}
Пытался разобраться в материалах
http://www.xakep.ru/post/51883/default.asp
http://www.xakep.ru/post/52128/default.asp
но не понимаю куда смотреть - толи на UNSERIALIZE то ли на эту функцию
function__construct($mask=null,$prefix="general") {
$yyyymmdd=date("Ymd");
$_conf= array('mode'=>0775,'timeFormat'=>'%Y-%m-%d:%H:%M:%S');
if (!is_dir(VANDA_LOGDIR)) @mkdi r(VANDA_LOGDIR,0755,TRUE);
$_logFile=VANDA_LOGDIR.$prefix."_".$yyyymmdd.".log";
$this->_log= &Log::singleton('file',$_logFile,$prefix,$_conf);
if (isset($mask))$this->_log->setMask($mask);
}
и как они между собой должны быть связаны.
Вообщем хотелось бы поработать со спецом, который смог бы объяснить и помочь раскрутить эту багу в моем скрипте (если бага там есть).
Естественно, готов оплатить затраченное время на такой урок (за помощь).
Если кто готов помочь с этим - пожалуйста в личку скиньте асю или жабу.
Или давайте разберем пример тут
Всем огромное спасибо!
Нужна помощь в реверсинге и объяснения бага Unserialize в PHP. Имею скрипт с такой функцией
functionretrieveFromCacheArray($type,$identity,$va lidtime=0) {
if (!$this->activated) returnfalse;
$thisFile= empty($type) ?$this->jCacheDir.$identity.".php":$this->jCacheDir.$type."/".$identity.".php";
if (!empty($validtime)) {
$lastMod= @filemtime($thisFile);
if (time() > ($lastMod+($validtime*60))) returnfalse;
}
$fp= @fopen($thisFile,"r");
if ($fp&& @flock($fp,LOCK_SH)) {
$contents='';
while ($data=frea d($fp,4096)) {$contents.=$data; }
$contents=str_replace("","",$contents);
fclose($fp);
returnunserialize( $contents);
}
@fclose($fp);
returnfalse;
}
Пытался разобраться в материалах
http://www.xakep.ru/post/51883/default.asp
http://www.xakep.ru/post/52128/default.asp
но не понимаю куда смотреть - толи на UNSERIALIZE то ли на эту функцию
function__construct($mask=null,$prefix="general") {
$yyyymmdd=date("Ymd");
$_conf= array('mode'=>0775,'timeFormat'=>'%Y-%m-%d:%H:%M:%S');
if (!is_dir(VANDA_LOGDIR)) @mkdi r(VANDA_LOGDIR,0755,TRUE);
$_logFile=VANDA_LOGDIR.$prefix."_".$yyyymmdd.".log";
$this->_log= &Log::singleton('file',$_logFile,$prefix,$_conf);
if (isset($mask))$this->_log->setMask($mask);
}
и как они между собой должны быть связаны.
Вообщем хотелось бы поработать со спецом, который смог бы объяснить и помочь раскрутить эту багу в моем скрипте (если бага там есть).
Естественно, готов оплатить затраченное время на такой урок (за помощь).
Если кто готов помочь с этим - пожалуйста в личку скиньте асю или жабу.
Или давайте разберем пример тут
Всем огромное спасибо!