目录分隔符绕过
目录分隔符:/
赛题: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/目录分隔符绕过/