目录分隔符绕过
目录分隔符:/
赛题:r3CTF2025-web-Evalgelist
绕过方法一:PHP预定义变量
参考链接:
link:https://www.php.net/manual/en/dir.constants.php
link:https://www.w3cschool.cn/php/php-separator.html
DIRECTORY_SEPARATOR
是 PHP 中的一个预定义常量,其作用是返回当前操作系统所使用的目录分隔符
在windows系统中获取的是\
,在Linux系统中获取的是/
1 |
|
绕过方法二:PHP魔术常量
参考链接:
link:https://www.php.net/manual/en/language.constants.magic.php
link:https://www.runoob.com/php/php-magic-constant.html
__FILE__
__FILE__
是一个PHP的一个魔术常量,表示当前脚本文件的完整路径(比如 /var/www/html/index.php)
1 |
|
[__FILE__]
:这里是把文件路径字符串放到数组的第一个元素位置
1 |
|
[__FILE__][0]
:此操作是从数组中取出第一个元素,也就是得到原来的文件路径字符串
1 |
|
[__FILE__][0][0]
:这一步是获取字符串的第一个字符
1 |
|
如果在Linux系统中,[__FILE__][0][0]
获取到的就是/
__DIR__
__DIR__
是一个PHP的魔术常量,表示当前脚本文件的目录(比如 /var/www/html)
和__FILE__
同理,在Linux系统中,[__DIR__][0][0]
可获取到/
目录分隔符绕过
https://yschen20.github.io/2025/07/25/目录分隔符绕过/