2010-04-20 16 views
10

Al realizar un mantenimiento web hoy, noté una nueva carpeta extraña en mi cuenta de alojamiento GoDaddy en el nivel raíz llamada "dbboon", con un único archivo dentro, llamado proxy .php. Su código se enumera a continuación, y parece ser algún tipo de función de proxy.misteriosa carpeta dbboon con archivo proxy.php en mi cuenta godaddy

Estaba un poco preocupado porque no lo puse ahí. Busqué en Google todo esto para obtener más información, pero no encontré nada, excepto el archivo proxy que también se almacenó en pastebin.com: http://pastebin.com/PQsSPbCr

Llamé a GoDaddy y me confirmaron que les pertenecía, dijeron que era puesto allí por su grupo de alojamiento avanzado para fines de prueba, pero no tenía más información. Pensé que todo esto era realmente extraño: ¿por qué iban a poner algo en mi carpeta sin darme un aviso, y por qué tendrían que hacer algo como esto?

¿Alguien sabe algo al respecto?

<?php 

$version = '1.2'; 

if(isset($_GET['dbboon_version'])) { 
echo '{"version":"' . $version . '"}'; 
exit; 
} 

function dbboon_parseHeaders($subject) { 

global $version; 

$subject = trim($subject); 
$parsed = Array(); 
$len = strlen($subject); 
$position = $field = 0; 
$position = strpos($subject, "\r\n") + 2; 

while(isset($subject[$position])) { 

$nextC = strpos($subject, ':', $position); 
$fieldName = substr($subject, $position, ($nextC-$position)); 
$position += strlen($fieldName) + 1; 
$fieldValue = NULL; 

while(1) { 
    $nextCrlf = strpos($subject, "\r\n", $position - 1); 
    if(FALSE === $nextCrlf) { 
    $t = substr($subject, $position); 
    $position = $len; 
    } else { 
    $t = substr($subject, $position, $nextCrlf-$position); 
    $position += strlen($t) + 2; 
    } 

    $fieldValue .= $t; 
    if(!isset($subject[$position]) || (' ' != $subject[$position] && "\t" != $subject[$position])) { 
    break; 
    } 
} 

$parsed[strtolower($fieldName)] = trim($fieldValue); 
if($position > $len) { 
    echo '{"result":false,"error":{"code":4,"message":"Communication error, unable to contact proxy service.","version":"' . $version . '"}}'; 
    exit; 
} 
} 
return $parsed; 
} 

if(!function_exists('http_build_query')) { 
function http_build_query($data, $prefix = '', $sep = '', $key = '') { 
$ret = Array(); 
foreach((array) $data as $k => $v) { 
    if(is_int($k) && NULL != $prefix) { 
    $k = urlencode($prefix . $k); 
    } 
    if(!empty($key) || $key === 0) { 
    $k = $key . '[' . urlencode($k) . ']'; 
    } 
    if(is_array($v) || is_object($v)) { 
    array_push($ret, http_build_query($v, '', $sep, $k)); 
    } else { 
    array_push($ret, $k . '=' . urlencode($v)); 
    } 
} 
if(empty($sep)) { 
    $sep = '&'; 
} 
return implode($sep, $ret); 
} 
} 

$host = 'dbexternalsubscriber.secureserver.net'; 
$get = http_build_query($_GET); 
$post = http_build_query($_POST); 
$url = $get ? "?$get" : ''; 
$fp = fsockopen($host, 80, $errno, $errstr); 

if($fp) { 

$payload = "POST /embed/$url HTTP/1.1\r\n"; 
$payload .= "Host: $host\r\n"; 
$payload .= "Content-Length: " . strlen($post) . "\r\n"; 
$payload .= "Content-Type: application/x-www-form-urlencoded\r\n"; 
$payload .= "Connection: Close\r\n\r\n"; 
$payload .= $post; 

fwrite($fp, $payload); 

$httpCode = NULL; 
$response = NULL; 
$timeout = time() + 15; 

do { 
while($line = fgets($fp)) { 
    $response .= $line; 
    if(!trim($line)) { 
    break; 
    } 
} 
} while($timeout > time() && NULL === $response); 

$headers = dbboon_parseHeaders($response); 
if(isset($headers['transfer-encoding']) && 'chunked' === $headers['transfer-encoding']) { 
do { 
    $cSize = $read = hexdec(trim(fgets($fp))); 
    while($read > 0) { 
    $buff = fread($fp, $read); 
    $read -= strlen($buff); 
    $response .= $buff; 
    } 
    $response .= fgets($fp); 
} while($cSize > 0); 
} else { 
preg_match('/Content-Length:\s([0-9]+)\r\n/msi', $response, $match); 
if(!isset($match[1])) { 
    echo '{"result":false,"error":{"code":3,"message":"Communication error, unable to contact proxy service.","version":"' . $version . '"}}'; 
    exit; 
} else { 
    while($match[1] > 0) { 
    $buff = fread($fp, $match[1]); 
    $match[1] -= strlen($buff); 
    $response .= $buff; 
    } 
} 
} 

fclose($fp); 

if(!$pos = strpos($response, "\r\n\r\n")) { 
echo '{"result":false,"error":{"code":2,"message":"Communication error, unable to contact proxy service.","version":"' . $version . '"}}'; 
exit; 
} 

echo substr($response, $pos + 4); 

} else { 
echo '{"result":false,"error":{"code":1,"message":"Communication error, unable to contact proxy service.","version":"' . $version . '"}}'; 
exit; 
} 
+0

Esta pregunta debe ser bloqueado, la mayoría de las respuestas son 'yo también' comentarios en vez de respuestas. – Jacco

+0

Intente preguntar esto en http://webmasters.stackexchange.com/ en su lugar –

+3

Voy a cerrar esta pregunta como fuera de tema porque se trata de una política de servicio de terceros – TylerH

Respuesta

4

Parece que el código prueba una conexión a dbexternalsubscriber.secureserver.net y devuelve el resultado de algún tipo de salida de JSON. Podría ser utilizado como algún tipo de probador de conexión. He escuchado cosas menos que estelares sobre el alojamiento de GoDaddy, pero aparte de la reputación, lo eliminaría, si es posible. Además, verifique su archivo .htaccess para ver cualquier cambio que pueda reflejar este código.

+1

Gracias por el asesoramiento. Afortunadamente, pude eliminar la carpeta sin ningún problema. –

Cuestiones relacionadas