未完成 ezphp
未完成 ezphp
1 | <?php |
f=字符串时间/nfile:///flag
知识点:
1.stripos函数
1 | 输入:stripos($A, $B) |
| 逻辑维度 | strpos (强匹配) | stripos (弱匹配) |
|---|---|---|
| 大小写敏感 | 是 | 否 |
| 检索示例 | Admin $\neq$ admin |
Admin == admin |
| 成功返回值 | int (位置) |
int (位置) |
| 失败返回值 | false |
false |
Session 文件注入
str_starts_with函数
1 | str_starts_with(file($_GET['f'])[0], (string)time()) |
file($_GET['f'])[0]:读取你指定文件的第一行。(string)time():获取服务器当前的 Unix 时间戳(例如1708754400)。- 匹配要求:如果你在 13 点 40 分 00 秒提交,你的文件第一行开头必须写着
1708754400。 - 时间竞争:因为
time()每秒都在变,你手动上传文件几乎不可能,需要写 脚本 自动化完成“计算时间 -> 生成文件 -> 提交请求”的操作。
1 | import time |
https://blog.24kmagic.site/2026/03/21/ctf%E9%A2%98%E8%A7%A3/web/%E6%9C%AA%E5%AE%8C%E6%88%90%20ezphp/
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Comments