MOCTF PUBG 反序列化+文件备份+linux文件读取

简介:

这道题考核了很多ctf的有关知识点,我也纠结了好久才可以彻底明白,今天发出来自己的解题思路和大家分享一下。。。

考点:

php反序列化漏洞,文件备份以及linux文件读取的有关知识
不太了解php反序列化漏洞的可以查看这篇博客:
https://www.freebuf.com/column/161798.html

题目总览:

在这里插入图片描述
题目
好,我们开始解题,首先右键审查源码,发现有什么新的东西…
备份地址发现这是一个文件的备份名称,我们赶快访问一下。。
在这里插入图片描述下载之后审查源码
在这里插入图片描述上面发现包含了一个新文件class.php和当pos等于school时的反序列化函数,因此,我们尝试用同样的方法下载了class.php
在这里插入图片描述发现了3个php魔法方法,没有基础的朋友可以先看一下我之前的总结附带绕过__wakeup魔法方法的代码,,,
在这里插入图片描述还有个waf.php,但是奈何暂时没有方法读取。。。。
在这里插入图片描述
先擦干泪水,现在我们来逐个审计这些函数的内容:::
wakeup
__wakeup()函数在其所在对象反序列化的时候自动调用。所以如果我们构造sheldon对象并反序列化后,我们的对象内部就会自动调用__wakeup()函数,他会把序列化bag的内容转换为nothing,weapon的内容转化为kar98K,如果我们不能绕过这个函数,那一定就不可以继续判断执行
在这里插入图片描述
在这里插入图片描述
这个函数意思是传入一个参数b,而b为一个函数并执行这个函数,用作后面的使用。。。
在这里插入图片描述本篇最重要的函数诞生了,这是我们这次使用最重要的函数,__call魔法函数,__call()有两个参数,第一个参数会接受不存在的方法名,第二个参数则以数组的方式接受不存在方法的多个参数。
然后进行函数内部的判断,首先,它会把 m e t h o d 分 割 成 2 个 部 分 , 先 验 证 是 否 存 在 . / / c l a s s method分割成2个部分,先验证是否存在.//class method2.//classfile[0].php的存在性,然后执行 system("php .//class// m e t h o d . p h p " ) , 这 时 候 我 们 就 可 以 构 造 这 样 的 ∗ ∗ method.php"),这时候我们就可以构造这样的** method.php")method=win.php|cat class/flag,从而满足if的条件,又可以执行的内容为system(“php .//win.php|cat class/flag.php”)**切记传参数的顺序传递反了就凉了。。。。
在这里插入图片描述
在这里插入图片描述这是我们最后必定会执行的函数,这里面也有条件:
1,先对成员执行waf函数(奈何看不了waf.php,很多东西都过滤了也不曾知道,有点尴尬…)。
2,然后if中条件满足的话,对bag成员执行Get_air_drops函数,否则就die输出一行字。

然后我们来构建payload:::
http://120.78.57.208:6001/?LandIn=school&pubg=O:7:“sheldon”:4:{s:3:“bag”;s:27:"//win.php| cat ./class/flag";s:6:“weapon”;s:3:“AWM”;}
或者这样:
http://120.78.57.208:6001/?LandIn=school&pubg=O:7:“sheldon”:4:{s:6:“weapon”;s:3:“AWM”;s:3:“bag”;s:27:"//win.php| cat ./class/flag";}
就是反着传了一下。。。
然后右键查看源码 就可以找到flag》》》》》》》》
moctf{Try_Learn_PhP_h4rder_wow}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值