PDA

Просмотр полной версии : Unserialize в PHP


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

}

и как они между собой должны быть связаны.

Вообщем хотелось бы поработать со спецом, который смог бы объяснить и помочь раскрутить эту багу в моем скрипте (если бага там есть).

Естественно, готов оплатить затраченное время на такой урок (за помощь).

Если кто готов помочь с этим - пожалуйста в личку скиньте асю или жабу.

Или давайте разберем пример тут

Всем огромное спасибо!

nikp
21.12.2011, 16:57
Очень подробно тут (https://rdot.org/forum/showthread.php?t=950)

jangle
22.12.2011, 00:54
to nikp

Спасибо, начинаю чуть понимать