Bugku 字符?正则?
打开是一段中规中矩的php代码
先读一下代码
高亮文件2.php
定义变量key
定义变量IM其值是一个正则表达式匹配的结果
如果IM是真就输出key
所以这道题的关键也就是IM正则匹配的结果了,我们只需要让其为1即可。
先分析下他在如何匹配
匹配函数里共有三段,第一段是匹配方式,第二段是字符串,第三段是参数,这里的math似乎没有什么作用。。。然后字符串就是经过trim函数处理后的GET传入id值,因为这里trim函数中没带其他参数,所以这里就是返回删除了NULL,制表符换行垂直制表符回车空格后的值
关键点就是我们传入的id要与前面的代码匹配,分析匹配内容
key(排除换行)(匹配前面的字符0次或多次)key(排除换行)(至少匹配4次至多匹配7次)key 两次转义/\ ((排除换行)匹配0次或多次key)匹配小写字母匹配任何标点符号(不分大小写)
最后构造出我们的id:keykeyaaaakey:/a/keya:
得到flag