我正在尝试进行一个涉及本地文件包含的ctf挑战。
考虑到这一点,我用/etc/,/var/,/home等重新创建了一个类似linux的文件夹系统。因为我使用的是免费的虚拟主机服务。
为了不让用户觉得可疑,我只想以图形方式更改网址,使其看起来像是用户在根目录中,而他实际上在另一个子目录中(而且用户需要能够包含../../etc/passwd)。到目前为止,我得到的是:
RewriteEngine On
RewriteBase /folder1/folder2/此文件位于/folder1/folder2/中,但它不执行任何操作...
有人能帮我吗?
附言:对不起,我的英语。
发布于 2021-02-18 04:03:32
RewriteBase /folder1/folder2/
RewriteBase本身不做任何事情。RewriteBase指令覆盖要在RewriteRule指令的相对路径替换中使用的基本URL路径。例如,给定以下内容:
RewriteBase /folder1/folder2/
RewriteRule ^foo$ bar [L]如上所述,如果您请求/foo,则请求将在内部重写为/folder1/folder1/bar,因为替换字符串bar是相对的。这与陈述以下内容相同:
RewriteRule ^foo$ /folder1/folder2/bar [L]这就是RewriteBase指令所做的全部工作。您在这里并不严格需要它,但如果您愿意,您可以使用它。
文件夹,这个文件位于“/
1/folder2/”,但是它不做任何事情...
您需要针对文档根目录的请求,所以不能将这个.htaccess文件放在/folder1/folder2/目录中-它什么也做不了。位于/folder1/folder2/.htaccess的.htaccess文件将仅针对/folder1/folder2/及其所有子目录的请求。
听起来,您想在内部重写从文档根目录到/folder1/folder2/目录的所有请求-有效地对用户隐藏/folder1/folder2/。
为此,您需要在文档根目录下的/.htaccess文件中使用类似以下内容:
RewriteEngine On
RewriteRule !^folder1/folder2 /folder1/folder2%{REQUEST_URI} [L]上述代码会将任何尚未用于/folder1/folder2的请求重写到该子目录中。
用户还需要能够包含
../../etc/passwd
我不确定你打算如何“包含”它,但是如果你指的是客户端的URL路径,那么你就不应该使用像这样的相对URL路径。使用根目录相对URL路径,例如。/etc/passwd (来自文档根目录)。
如何编写将
/folder1/folder2/更改为/的.htaccess
请注意,此.htaccess文件的作用完全相反。它将请求/ (文档根目录)的URL更改为/folder1/folder2/ -这似乎是您问题中的要求。您需要在内部链接中将/folder1/folder2/更改为/。
https://stackoverflow.com/questions/66245338
复制相似问题