CTF | bugku | 字符?正则?
2024-08-27 00:10:38
代码如下
<?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@
最新文章
- Document树的解析方法
- macbook安装win7
- CF# 334 Lieges of Legendre
- LABJS使用教程
- 洛谷OJ P1196 银河英雄传说(带权并查集)
- PLSQL 的简单命令之二
- 并发与同步 (一) ThreadLocal与Synchronized 用哪一个好
- hdu 1987-How many ways(dp)
- 【C++基础之十四】函参的缺省
- 解决方案 git@github.com出现Permission denied (publickey)
- Laravel (5.5.33) 加载过程---instance方法(二)
- 03 JVM的垃圾回收机制
- Linux初学者的总结
- Zabbix配置网络流量监控报警
- 前端PS切图
- JDK5的新特性之可变参数&;Arrays.asList()方法
- spring boot扫描mapper文件
- AI 反向传播神经网络
- 【cocos2d-js官方文档】事件分发监听机制(摘录)
- 5.9 C++重载转型操作符