BugKu_No one knows regex better than me

BugKu_No one knows regex better than me_第1张图片

进入第一个if

绕过第二个if,进入else

主要记录一下第三个正则表达式。

if(preg_match("/\\|\056\160\150\x70/i",$third))

这里有个优先级的问题,当匹配字符串中有字符串转义时,先进行字符串转义,然后进行正则匹配的相关转义。

\x是16进制数,

\nnn是8进制数。

 

056-46-.

160-112-p

150-104-h

70--112-p

字符串转义后结果是

if(preg_match("/\\|\056\160\150\x70/i",$third))
if(preg_match("/\|.php/i",$third))

然后进行正则转义

就是|.php

所以payload就是:

?zero=ZmxhZy4=&first=aaa|.php

你可能感兴趣的:(CTF刷题记录,CTF)