CTF | bugku | 字符?正則?


做題鏈接 

一個詳細講正則的網址1

一個詳細講正則的網址2 


代碼如下

<?php 
highlight_file('2.php');
$key='KEY{********************************}';
$IM= preg_match("/key.*key.{4,7}key:\/.\/(.*key)[a-z][[:punct:]]/i", trim($_GET["id"]), $match);
if( $IM ){ 
  die('key is: '.$key);
}
?> 

我初次構造的payload:

keykeykeykeykey:/ /keya@i


 

 

解析:

 key        .      *        key      .      {4,7}  key:\/             \/  (       .     *        key)     [a-z]                 [[:punct:]]
‘key’+任意單個字符+零個或多個+‘key’+任意單個字符+長度4-7+‘key:/’+任意單個字符+ / +(任意單個字符+零個或多個+‘key’)+英文小寫字母一個+匹配‘!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~.’中一個字符

payload最后面的 "i" 得益於  “preg_match函數的特性 ” ,這個 “i” 可有可無。

此外還有: 

/i:表示匹配時不區分大小寫,如URL的匹配

/u :表示按照unicode,UTF-8的規則匹配,如漢字的匹配

/s: 表示把字符串視作單行

一個更加簡潔的payload:

keykey1234key:/1/keya@

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM