No one knows regex better than meWEB 未解决

分数: 25 金币: 5
题目作者: yeedo
一  血: 硝基苯爸爸
一血奖励: 10金币
解  决: 2671
提  示:
描  述:
正则好像没有想象中那么简单
评论
727761286 3年前

这一串匹配结果有大佬可以详细解答吗,/\\|\056\160\150\x70/i /\\|.php/i 不是最后是\或者.php吗,还是说\的优先级比|高,先对\|进行转义,多出来的\又转义一次?。虚心求教

回复 1

XiaoHexi 3年前

给第一次做这种题的人一点建议(我也是第一次),先试着把代码读懂,不然不知道怎么下手,web题目大部分都是要弄playload,代码弄懂之后playload基本可以自己写出来了

回复 0

2817001550 3年前

php正则表达式建议使用单引号括起来而不是双引号,这个题目充分说明了这一准则的重要性。

回复 1

orobos1 3年前

并不是“字符串转译一次,正则再转译一次”,而是遇到/会转译到尽头吧,因为在自己的电脑上将//改成/照样是同样的答案

回复 0

competition 3年前

http://www.regexp.cn/Regex,大家在这个网站上试试,感觉答案不对,仅有.php也可以匹配

回复 0
yswdlll 3年前

不太会,大佬能说一下这个怎么用么,为用那个生成代码功能跑python,跑不出来

回复 0

competition 3年前

感觉不太对啊,"/\\|.php/"不是应该是\或者.php的字符吗?为什么一定要有|这个符号?

回复 3
4thrun 3年前

同问,(\\)|.php行不行呢

回复 1

roguelike 3年前

同问

回复 1

王曦之啊 3年前

if(preg_match("/\\|\056\160\150\x70/i",$third)) 有大佬能详细讲解一下这一步怎么搞吗?

回复 0
Anyyy 3年前

$end=substr($third,5);就是表示截断third的前五位,所以要拼接成xxxx|.php,这样保留下的就是.php,最后要和base64解码后的zero拼接成flag.php就出来了

回复 2

Anyyy 3年前

\056\160\150\x70 是 十六进制和八进制的Ascii编码,解出来就是 ".php" /\\|.php/i

回复 1

fstr0w 3年前

这道题挺好,对我这种php和re都不太熟悉的人来说,能学到很多。

回复 0

heavenqaq 3年前

tnl,建议搜索正则运算符优先级

回复 1

Loong3t 3年前

字符串优先级比'|'高,'\'转义符同理

回复 1

WriteUp

image
DD03

8 金币

评分(6)

解题动态

YameMres 攻破了该题 1天前
besty2k 攻破了该题 1天前
Sekzzz 攻破了该题 3天前
toonavy 攻破了该题 3天前
chaojiikun 攻破了该题 4天前
PY222 攻破了该题 5天前
15195388189 攻破了该题 7天前
13787026747 攻破了该题 7天前
19581700609 攻破了该题 11天前
Marionette 攻破了该题 11天前
unilot 攻破了该题 13天前
fuchen11 攻破了该题 13天前
fxstu 攻破了该题 14天前
17881152308 攻破了该题 15天前
hikarical 攻破了该题 17天前
她说我们只是朋友 攻破了该题 17天前
szmlzw120 攻破了该题 18天前
buggy 攻破了该题 18天前
nagatoyuki 攻破了该题 18天前
kale 攻破了该题 19天前
问题反馈