我目前在学校上渗透测试课。我正在尝试为一个项目创建一个 CTF。我的目标之一是设置一个允许目录遍历的 Apache Web 服务器,以便尝试使用我的 CTF 的人可以遍历到我的根目录并访问包含加密文件的文件夹。我希望他们能够下载这个文件,这样他们就可以在他们的机器上解密它。但是,我什至不知道从哪里开始允许目录遍历。我以前从未真正使用过 Apache Web 服务器,我在网上找到的一切都是关于防止目录遍历。
我在 Ubuntu 12.04 虚拟机上使用 Apache2。
答案 0 :(得分:0)
我有一个足够好的解决方法。
首先,我将 DocumentRoot
中的 /etc/apache2/sites-available/default
更改为 "/"
,以便服务器可以访问 /
中的所有内容,并在 index.html
中创建了一个 /
文件}} 以便 Apache 服务器知道要呈现什么。 index.html
的内部只是
<html><script>location="/home/user/server/index.html";</script>
渲染要显示的实际索引。我这样做是为了更明显地完成某种目录遍历。通过这样做,向访问者显示的路径是 http://192.168.xx.xx/home/user/server/index.html
。
然后,我添加了一个通配符目录:
<Directory ~ "/*">
Options +Indexes
</Directory>
以便用户可以进入根目录中的任何文件夹。现在,当有人访问 192.168.xx.xx
时,他们将被路由到 192.168.xx.xx/home/user/server/index.html
,如果他们输入其他内容,请说 192.168.xx.xx/etc/passwd
文件将显示给他们。
我知道这不是真正的目录遍历,但对于这个项目来说它已经足够了。
答案 1 :(得分:0)
Apache 本身不允许创建目录遍历漏洞。您将需要使用 PHP 之类的东西,在其中传递 ?file=filename
参数并使用带有该值的 open()
。
PHP open()
函数将解释转义“预期”目录所需的 ../../
序列。但是 Apache 本身不允许这样做。