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}
相关推荐
NOVAnet20237 小时前
云网 + 存储一体化灾备方案解析:南凌科技 × 爱数全景云灾备技术与行业落地价值
科技·web安全·企业数字化·企业sd-wan·混合云网络
灯琰19 小时前
STM32F4+W5500 移植与开发常见问题
网络
SLD_Allen9 小时前
Garak:NVIDIA开源的LLM安全“体检”工具
安全·ai
qyr678910 小时前
全球新能源汽车电机驱动器市场深度调研报告
大数据·网络·人工智能·自动化·汽车
Hiyajo pray11 小时前
SDN 访问控制性能调优方法
服务器·网络·网络安全
初晴融雪-快雪时晴11 小时前
网络硬件全景梳理:从光纤到手机,一张网是如何连接的?
网络·智能手机·智能路由器
辣椒思密达12 小时前
AI出海产品本地化测试:住宅IP在模拟海外用户环境中的实践价值
网络协议·tcp/ip·安全·php·苹果vision pro
huainingning12 小时前
交换机通过ftp下载文件或者传输文件到ftp服务器
运维·服务器·网络
2401_8541515513 小时前
嵌入式 Bootloader 与 OTA 固件升级深度解析——从 Flash 分区到安全回滚
开发语言·stm32·单片机·嵌入式硬件·安全·php
qq_5896660513 小时前
如何避免用户手速过快多次点击触发 api 多次调用
java·前端·网络