CTF | bugku | 字符?正则?
Posted chrysanthemum
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CTF | bugku | 字符?正则?相关的知识,希望对你有一定的参考价值。
代码如下
<?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@