靶场练习——兵者多诡

文章讲述了如何在文件上传漏洞中,通过限制后缀的策略下,利用PHP伪协议(如php://filter和phar://)结合图片马和压缩包技术,绕过限制并实现文件包含漏洞的利用,最终获取flag。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题型解析

  1. 文件上传漏洞中后缀被限制
  2. 文件包含漏洞和文件上传漏洞结合利用
  3. php伪协议的运用

解题步骤

  1. 1. 打开界面发现是一个可以上传文件的页面

2. 这里上传一个包含一句话木马的shell.php文件,给出提示说只能上传PNG图片

3. 这里上传一个png文件上去发现出现的界面是uploads下的一个界面

因此猜测上传文件的位置是uploads,且文件被重命名了为imagekey参数

通过抓包分析发现fp参数的值是upload,可以确认是向upload传递数据

4. 因此可以对fp参数尝试文件包含中的伪协议去读取home.php文件

利用php://filter/convert.base64-encode/resource=

php://filter(本都磁盘文件进行读取)

可以过滤出home.php文件的php源码

再将下面的base64编码解码发现存在一个include函数,对fp传递的值后加一个php的后缀

5. 因为只能上传png的格式文件,所以考虑利用图片码的方法进行文件上传,再配合文件包含漏洞常 用的phar://伪协议进行读取

  1.      1.将php文件先压缩成zip文件,在修改后缀为.zip.png

                                                         

      2. 上传图片马

       

       3. 利用phar://伪协议进行文件包含

这个就是php解压缩报的一个函数,不管后缀是什么,都会当做压缩包来解压,用法: ?file=phar://压缩包/内部文件 phar://xxx.png/shell.php 注意 PHP>=5.3.0压缩包  需要是zip协议压缩,  rar不行,将木马文件压缩后,改为其他任意格式的文件都可以正 常使用。步骤:写一个一句话木马shell php,然后用zip协议解压缩为shell.zip。然   后将后缀改为png等其他格式

        4. 利用蚁剑进行连接

拿到flag

总结

遇到文件上传漏洞,如果有告诉文件存放的位置,那就可以想办法绕过后缀的限制。这题是白名单设置的只允许.png的格式,因此思路就是上传图片马,而要想利用图片马必须结合php伪协议进行本地文件包含访问,因此就要熟悉伪协议的用法了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

muzzert

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值