「配枪朱丽叶。」

RootのCTF学习笔记。

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