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

4 篇文章 0 订阅
2 篇文章 0 订阅

文件上传,最直观的注入点可能就是提交文件那里,但是这道题不一样。

在这里前后端都会校验,而且都采用白名单机制,并且 PHP 版本高于 5.2.4 ,什么 %00截断,0x00截断都用不了

虽然你可能不愿意相信,但注入点不在这里

在这里插入图片描述

在这里插入图片描述

查看 “关于” 页面

http://49.123.0.109:40005/index.php?module=about

在这里插入图片描述

查看 “提示”:当前目录下存在一个 about.inc 文件

在这里插入图片描述

查看 about.inc 文件

在这里插入图片描述

虽然是乱码,但是可以大致看到,内容是不是和 “关于” 页面内容是一样的???

 http://49.123.0.109:40005/index.php?module=about

http://49.123.0.109:40005/about.inc

内容似乎是一样的,那它们两者之间有什么关联呢?是单纯的巧合,还是这两个页面压根就是同一个页面呢?

这是一个大胆的猜测,能想到这个的一定是天才吧。

如果这两个页面是一样的,那么我们在输入 ?module=about 的时候应该是自动加上了一个 .inc 后缀,使其变为 about.inc 再包含进来。

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

phar 伪协议无论读取什么文件,都会将其视为压缩包进行解压缩,然后作为 php 代码执行,在文件上传类漏洞中经常被用到。

假设猜想成立,那么我们上传的文件一定要是个 .inc 文件,这样的话经过服务器自动加后缀 .inc ,才能读到正确的文件;如果上传其他类型的文件,最终都会被 .inc 覆盖,成为一个不存在的文件。

要利用 phar 伪协议读文件,我们先要将这个 .inc 文件压缩(注意 PHP>=5.3.0 压缩包需要是 zip 协议压缩,rar 不行)成 zip 文件;

为了通过这个严格的白名单验证,我们再将 .zip 改为 .jpg (符合条件的格式就行)。

上传成功后,用 phar 伪协议读取这个 .jpg 文件,就会自动解压缩,并作为 php 代码执行,然后用蚁剑连就行了。

理论存在,实践开始。

创建 .inc 文件,里面是一句话木马

在这里插入图片描述

压缩为 zip 文件

在这里插入图片描述

将 .zip 改为 .jpg

在这里插入图片描述

上传 .jpg 文件

在这里插入图片描述

获取上传文件的路径

这里我们先上传一个普通照片,预览该照片,然后右击该照片打开所在位置即可。

在这里插入图片描述

发现照片所在路径:./upload/uploadfile/

在这里插入图片描述

利用 phar 伪协议进行文件包含
?module=phar://upload/uploadfile/eval.jpg/eval

这里 phar 伪协议解压缩完 eval.jpg 时,eval.jpg 就变成了一个文件夹,所以路径是 eval.jpg/eval.inc ,但因为服务器会自动加上 .inc 后缀,所以这里直接输入 eval.jpg/eval 即可。

蚁剑连接

路径是

http://49.123.0.109:40005/index.php?module=phar://upload/uploadfile/eval.jpg/eval

在这里插入图片描述

看似 flag 是这个,实则 flag 在根目录下

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值