Bugku CTF_Web——字符?正则?

Bugku CTF_Web------字符?正则?

进入靶场

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

一个php代码

复制代码
1. highlight_file('2.php');
功能:
将当前 PHP 文件的内容高亮显示在网页中。
这是为了让用户查看该文件的源码,但不会影响脚本的逻辑执行。
2. $key='flag{********************************}';
功能:
定义一个包含占位符的密钥变量 $key。
该变量的值类似于一个 FLAG,但实际内容被隐藏(用 * 替代)。
3. 正则表达式匹配:
php
复制代码
$IM = preg_match("/key.*key.{4,7}key:\/.\/(.*key)[a-z][[:punct:]]/i", trim($_GET["id"]), $match);
正则表达式解释:
模式:key.*key.{4,7}key:\/.\/(.*key)[a-z][[:punct:]]
key: 匹配字符串 key。
.*key: 匹配任意字符(0 个或多个),直到再次遇到 key。
.{4,7}: 匹配 4 到 7 个任意字符。
key:/./:
匹配 key:/ 后接任意一个字符 /。
(.*key): 捕获组,匹配任意字符(0 个或多个),直到遇到 key。
该捕获组的内容会被存储在 $match[1] 中。
[a-z]: 匹配一个小写字母。
[[:punct:]]: 匹配一个标点符号(如 !, ?, . 等)。
/i: 忽略大小写匹配。
匹配逻辑:
从用户传入的 id 参数值中,检测是否符合上述正则表达式。
如果匹配成功,preg_match 返回 1,并将匹配结果存储到 $match 数组中。
4. 条件判断:
php
复制代码
if ($IM) {
  die('key is: ' . $key);
}
功能:

如果正则匹配成功,程序会立即执行 die() 函数。
输出 key is: 和 $key 的值。
随后终止程序。
否则:

如果匹配失败,脚本什么也不会输出,程序继续运行(虽然在当前代码中没有后续逻辑)。
可能的漏洞或用法:
正则表达式解析绕过:

开发者试图通过正则表达式限定用户输入,但复杂的规则可能存在绕过方式。
通过精心构造 id 参数,可以触发条件并泄露 $key 的值。
正则调试:

输入可能是类似以下格式的字符串:
javascript
复制代码
keyxxxxxkeyxxxxkey:/x/somethingkeyy?
xxxxx: 任意字符。
:/x/somethingkey: 满足捕获组 (.*key)。
y: 一个小写字母。
?: 一个标点符号。

构造payload

复制代码
?id=keyABCkey1234key:/X/somethingkeya!

再把2.php去掉

成功拿到flag

复制代码
flag{80ef930e08856cb2403d3eec54aa578f}
相关推荐
wal131452023 分钟前
Dify发布V1.13.1版本,Hologres 向量数据库支持、HITL 邮件 Markdown 渲染及多项安全加固
数据库·安全·dify
weiwx8327 分钟前
Nginx location 和 proxy_pass 配置详解
服务器·网络·nginx
陈天伟教授1 小时前
人工智能应用- 预测新冠病毒传染性:04. 中国:强力措施遏制疫情
前端·人工智能·安全·xss·csrf
jxkejiiii2 小时前
巧用手机原生功能,零成本给重要文档加密防护
安全·智能手机
Dola_Zou3 小时前
工业软件安全架构向模块化授权演进的解析
安全·自动化·安全架构·软件加密
互成3 小时前
加密系统哪款最好用?2026年五款加密系统深度对比测评
运维·网络·安全
CDN3603 小时前
游戏服稳定运行:360CDN SDK 游戏盾实测体验
运维·游戏·网络安全
mftang4 小时前
WebSocket 通信协议详细解析
网络·websocket·网络协议
野指针YZZ4 小时前
TCP包 wireshark抓包分析-RK3588
网络·tcp/ip·wireshark
纽创信安4 小时前
纽创信安与SGS启动网络安全ISO 21434认证项目
网络·安全·web安全