[CTF刷题篇]攻防世界Web进阶之unserialize3 Writeup

前言

有了之前的PHP反序列化漏洞实例复现姿势详解这篇文章,终于不用再畏惧反序列化了,而且遇见这种题型甚至有一丝小兴奋,毕竟可以检验这段时间的学习了!

分析

创建环境,访问题目中给的url:
[CTF刷题篇]攻防世界Web进阶之unserialize3 Writeup_第1张图片
很明显,这题就考了2个点:

`反序列化`
`魔术函数__wakeup()的绕过`

附:绕过__wakeup()的姿势:
__wakeup 触发于 unserilize() 调用之前, 当反序列化时的字符串所对应的对象的数目被修改, __wake 的函数就不会被调用. 并且不会重建为对象

首先,我们构造111的反序列化字符串
详情请移步:PHP反序列化漏洞实例复现姿势详解
[CTF刷题篇]攻防世界Web进阶之unserialize3 Writeup_第2张图片
得到序列化后的字符串:

O:4"xctf":1:{s:4:"flag";s:3:"111"}

在这里插入图片描述
然后结合前文提到的绕过姿势,将对象数目修改构造payload:

O:4"xctf":2:{s:4:"flag";s:3:"111"}

然后以get方式提交即可:
[CTF刷题篇]攻防世界Web进阶之unserialize3 Writeup_第3张图片
OK,成功得到了flag!

结语

但行好事,莫问前程.

你可能感兴趣的:(每日CTF,#,攻防世界)