phar文件包含实例:

phar文件包含实例:

打开靶场后显示一个文件上传的页面:
在这里插入图片描述

打开源码,得到有用的信息有lfi.php、upload.php、以及lfi.txt文件
在这里插入图片描述

lfi.php、upload.php文件源码空空如也

在这里插入图片描述
在这里插入图片描述

打开lfi.txt文件,得到有用信息为%s.php,会给上传的目标文件添加php后缀
在这里插入图片描述

  • 在上图中可以看到,以 file 来接收参数,而且只允许包含php文件,还会在文件的末尾添加“.php”。
  • 这里因为只能上传 txt 文件,那么就需要包含来解析了。但是会在文件的末尾添加“.php”,所以直接包含是找不到我们上传的 txt 文件的,而且%00也不能用。
  • 这里用到了phar伪协议,比如:phar://1.jpg/2.php ,可以把1.jpg当成2.php解析。那么这里用如下的phar的利用方式:先把包含一句话的木马文件压缩,然后再改名字,上传后,用phar://1.txt/1.php 进行解析。

上传hack2.txt文件

在这里插入图片描述

使用phar伪协议进行文件包含

注意:链接末尾hack2无后缀

在这里插入图片描述

蚁剑连接成功

在这里插入图片描述

在html目录下,可进一步查看flag.php、upload.php
在这里插入图片描述

在这里插入图片描述

<?php
if(isset($_POST['submit'])){
    $upload_name = $_FILES['file']['name'];
    $tempfile = $_FILES['file']['tmp_name'];
    $upload_ext = trim(get_extension($upload_name)); 

    $savefile = "./files/".RandomString() . '.txt';
    if ($upload_ext == 'txt') {
            if(move_uploaded_file($tempfile,$savefile)) {
                die('Success upload. FileName: '.$savefile);
            }
            else {
                die('Upload failed..');
            }
    }
    else {
        die('You are not a txt file..');
    }

}
function get_extension($file){
    return strtolower(substr($file, strrpos($file, '.')+1));    
}

function RandomString()
{
    $characters = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $randstring = "";
    for ($i = 0; $i < 16; $i++) {
        $randstring .= $characters[rand(0, strlen($characters)-1)];
    }
    return $randstring;
}

// make a lfi vulnerability

?>

<html>

</html>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值