安慰奖WEB 未解决

分数: 35 金币: 5
题目作者: harry
一  血: dotast
一血奖励: 2金币
解  决: 2331
提  示:
描  述:
flag{}
评论
sunny 3年前

学到了学到了

回复 0

760046475ba 3年前

wakeup的绕过和private的特殊,直接输出会有不可见字符,所以得进行url编码来进行绕过。

回复 0

SUNFENGZHI 4年前

为什么有*号啊大佬

回复 0
lgb236277486 3年前

protected属性

回复 0

kjdfklha 4年前

分享个知识,有用给我点赞嗷 private属性序列化的时候格式是%00类名%00成员名 protected属性序列化的时候格式是%00*%00成员名

回复 13

onerm 4年前

填了个protected和private的属性序列化后编码的坑

回复 2

奶酪 4年前

好难

回复 0

a2cai 4年前

1. __wakeup函数当对象数量的值大于真实的就会绕过该函数。 2. 被修饰为protected和private的属性序列化后会变成%00*%00属性名,而%00不可见、 3. cat的替代函数为tac

回复 4

GitKit 4年前

当序列化字符串表示对象属性个数的值大于真实个数的属性时就会跳过__wakeup()函数的执行。

回复 0

打工人打工魂 4年前

protected属性被序列化的时候属性值会变成:%00*%00属性名,而%00是空字符,在浏览器中会显示为空,但不代表传入时能没有%00,所以最后的payload应该加上%00

回复 1

yswdlll 4年前

wakeup绕过,将属性数量修改成与clase不一致就可以绕过,可以用一个小技巧,把bak下载到本地的时候,自己序列化输出序列值进行base64编码,然后自己在解码,这样就回显不会丢掉\x00,然后在修改属性数量,在url编码。。。。 $select = new ctf('admin','tac flag.php'); echo base64_encode(serialize(@$sel

回复 0

WriteUp

image
小赵同学

3 金币

评分(4)

解题动态

AzKanna 攻破了该题 5天前
Fbug 攻破了该题 6天前
SkyAsh 攻破了该题 6天前
t0ur1st 攻破了该题 7天前
luck1219 攻破了该题 9天前
seyana 攻破了该题 9天前
李逍遥逛霍格沃茨 攻破了该题 10天前
harry2025 攻破了该题 11天前
tiger1cyd 攻破了该题 11天前
1uxu4y 攻破了该题 12天前
言寺介 攻破了该题 16天前
LL77 攻破了该题 18天前
马喽 攻破了该题 18天前
if..... 攻破了该题 18天前
asdf12 攻破了该题 18天前
yypui 攻破了该题 18天前
江江 攻破了该题 18天前
dask 攻破了该题 18天前
fbl 攻破了该题 18天前
huhamam 攻破了该题 18天前
问题反馈