HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Песочница
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 21.12.2011, 15:18
jangle
Познающий
Регистрация: 19.11.2006
Сообщений: 32
Провел на форуме:
95879

Репутация: 5
Отправить сообщение для jangle с помощью ICQ
По умолчанию

Уважаемые античатовцы!

Нужна помощь в реверсинге и объяснения бага Unserialize в PHP. Имею скрипт с такой функцией

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]function[/COLOR][COLOR="#0000BB"]retrieveFromCacheArray[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$type[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$identity[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$validtime[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]0[/COLOR][COLOR="#007700"]) {

if (![/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]activated[/COLOR][COLOR="#007700"]) return[/COLOR][COLOR="#0000BB"]false[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]$thisFile[/COLOR][COLOR="#007700"]= empty([/COLOR][COLOR="#0000BB"]$type[/COLOR][COLOR="#007700"]) ?[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]jCacheDir[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$identity[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]".php"[/COLOR][COLOR="#007700"]:[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]jCacheDir[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$type[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"/"[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$identity[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]".php"[/COLOR][COLOR="#007700"];

if (!empty([/COLOR][COLOR="#0000BB"]$validtime[/COLOR][COLOR="#007700"])) {

[/
COLOR][COLOR="#0000BB"]$lastMod[/COLOR][COLOR="#007700"]= @[/COLOR][COLOR="#0000BB"]filemtime[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$thisFile[/COLOR][COLOR="#007700"]);

if ([/COLOR][COLOR="#0000BB"]time[/COLOR][COLOR="#007700"]() > ([/COLOR][COLOR="#0000BB"]$lastMod[/COLOR][COLOR="#007700"]+([/COLOR][COLOR="#0000BB"]$validtime[/COLOR][COLOR="#007700"]*[/COLOR][COLOR="#0000BB"]60[/COLOR][COLOR="#007700"]))) return[/COLOR][COLOR="#0000BB"]false[/COLOR][COLOR="#007700"];

}

[/
COLOR][COLOR="#0000BB"]$fp[/COLOR][COLOR="#007700"]= @[/COLOR][COLOR="#0000BB"]fopen[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$thisFile[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]"r"[/COLOR][COLOR="#007700"]);

if ([/COLOR][COLOR="#0000BB"]$fp[/COLOR][COLOR="#007700"]&& @[/COLOR][COLOR="#0000BB"]flock[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$fp[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]LOCK_SH[/COLOR][COLOR="#007700"])) {

[/
COLOR][COLOR="#0000BB"]$contents[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"];

while ([/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]fread[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$fp[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]4096[/COLOR][COLOR="#007700"])) {[/COLOR][COLOR="#0000BB"]$contents[/COLOR][COLOR="#007700"].=[/COLOR][COLOR="#0000BB"]$data[/COLOR][COLOR="#007700"]; }

[/
COLOR][COLOR="#0000BB"]$contents[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]str_replace[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]""[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]""[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$contents[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]fclose[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$fp[/COLOR][COLOR="#007700"]);

return[/COLOR][COLOR="#0000BB"]unserialize[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$contents[/COLOR][COLOR="#007700"]);

}

@[/COLOR][COLOR="#0000BB"]fclose[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$fp[/COLOR][COLOR="#007700"]);

return[/COLOR][COLOR="#0000BB"]false[/COLOR][COLOR="#007700"];

}[/COLOR][/COLOR
Пытался разобраться в материалах

http://www.xakep.ru/post/51883/default.asp

http://www.xakep.ru/post/52128/default.asp

но не понимаю куда смотреть - толи на UNSERIALIZE то ли на эту функцию

PHP код:
PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]function[/COLOR][COLOR="#0000BB"]__construct[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$mask[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]null[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$prefix[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]"general"[/COLOR][COLOR="#007700"]) {

[/
COLOR][COLOR="#0000BB"]$yyyymmdd[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]date[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"Ymd"[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]$_conf[/COLOR][COLOR="#007700"]= array([/COLOR][COLOR="#DD0000"]'mode'[/COLOR][COLOR="#007700"]=>[/COLOR][COLOR="#0000BB"]0775[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'timeFormat'[/COLOR][COLOR="#007700"]=>[/COLOR][COLOR="#DD0000"]'%Y-%m-%d:%H:%M:%S'[/COLOR][COLOR="#007700"]);

if (![/COLOR][COLOR="#0000BB"]is_dir[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]VANDA_LOGDIR[/COLOR][COLOR="#007700"])) @[/COLOR][COLOR="#0000BB"]mkdir[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]VANDA_LOGDIR[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]0755[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]TRUE[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]$_logFile[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]VANDA_LOGDIR[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$prefix[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]"_"[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$yyyymmdd[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#DD0000"]".log"[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]_log[/COLOR][COLOR="#007700"]= &[/COLOR][COLOR="#0000BB"]Log[/COLOR][COLOR="#007700"]::[/COLOR][COLOR="#0000BB"]singleton[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'file'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$_logFile[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$prefix[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$_conf[/COLOR][COLOR="#007700"]);



if
(isset([/COLOR][COLOR="#0000BB"]$mask[/COLOR][COLOR="#007700"]))[/COLOR][COLOR="#0000BB"]$this[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]_log[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]setMask[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$mask[/COLOR][COLOR="#007700"]);

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

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

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

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

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

Всем огромное спасибо!
 
Ответить с цитированием

  #2  
Старый 21.12.2011, 16:57
nikp
Reservists Of Antichat - Level 6
Регистрация: 19.09.2008
Сообщений: 127
Провел на форуме:
835386

Репутация: 1463
По умолчанию

Очень подробно тут
 
Ответить с цитированием

  #3  
Старый 22.12.2011, 00:54
jangle
Познающий
Регистрация: 19.11.2006
Сообщений: 32
Провел на форуме:
95879

Репутация: 5
Отправить сообщение для jangle с помощью ICQ
По умолчанию

to nikp

Спасибо, начинаю чуть понимать
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ