No one knows regex better than meWEB 未解决

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

主要是构造flag.php, 转义字符是8进制ASCII 和16进制ASCII ,

回复 0

yeedo 3年前

看了大家的评论,有部分同学提出了对payload是否包含|的质疑,并给出了相关正则匹配的网站结果,事实上,在出这道题的时候我就发现了基本所有的正则匹配规则网站对这个正则的匹配结果都是存在问题的,这也是出这道题的初衷。建议大家做题时先学习php正则匹配优先级的相关知识,这样可以更好的理解这道题xd

回复 15
发到付件埃里克FDA 2年前

这个正则就TM神奇。 \\|我以为是表示 \符号的 结果是表示| 符号。。。

回复 2

现在有点开心了 3年前

感觉有点问题?

回复 0

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 4年前

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

回复 0
yswdlll 3年前

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

回复 0

competition 4年前

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

回复 3
4thrun 3年前

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

回复 1

roguelike 3年前

同问

回复 1

王曦之啊 4年前

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

回复 0
Anyyy 4年前

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

回复 2

Anyyy 4年前

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

回复 1

WriteUp

image
DD03

8 金币

评分(8)

解题动态

zhuizhui 攻破了该题 2天前
hackerbugku 攻破了该题 2天前
dwx1583 攻破了该题 4天前
aaaaab 攻破了该题 7天前
千机www 攻破了该题 10天前
56881834 攻破了该题 10天前
网络安全亮 攻破了该题 13天前
Da1ly_1upup 攻破了该题 15天前
ahsjezyt 攻破了该题 16天前
124要留就要77 攻破了该题 19天前
ZZZZZZYx 攻破了该题 19天前
奔跑小马 攻破了该题 20天前
wpc1027 攻破了该题 24天前
liuweiak007 攻破了该题 26天前
The-Beacon 攻破了该题 26天前
nihaolmb 攻破了该题 28天前
breeding 攻破了该题 29天前
Lmn13644482831 攻破了该题 29天前
soulchild 攻破了该题 1月前
yangbing8555 攻破了该题 1月前
问题反馈