WEB-Regex(正则 )
<?php highlight_file('index.php'); $IM= preg_match("/flag.*php.{4,7}key:\/.\/(.*regex)[[:punct:]][a-z]/i", trim($_GET["id"]), $match); if( $IM ){ include 'flag.php'; die('key is: '.$flag); } ?>
把正则摘下来分析以下:
preg_match("/flag.*php.{4,7}key:\/.\/(.*regex):punct:[a-z]/i", trim($_GET["id"]), $match);
/flag #就是/flag
.*php #任意一个字符0次或多次后面加上一个“php”
.{4,7} #任意一个字符4-7次
key: #就是key:
\/.\/ #一个/加上任意字符加上一个/
(.*regex) #任意一个字符0次或多次后面加上一个“regex”
[ [:punct:]] #匹配任何标点符号
[a-z] #单个字符a-z
/i #就是/i
综上所述,payload如下:
/flag.php1234key:/p/1234regex:p/i