允许目录遍历Apache2

允许目录遍历Apache2,apache2,penetration-testing,directory-traversal,Apache2,Penetration Testing,Directory Traversal,我目前在学校参加渗透测试班。我正在尝试为一个项目创建一个CTF。我的目标之一是建立一个ApacheWeb服务器,允许目录遍历,以便尝试我的CTF的人可以遍历到我的根目录并访问包含加密文件的文件夹。我希望他们能够下载这个文件,这样他们就可以在自己的机器上解除加密。然而,我甚至不知道从哪里开始允许目录遍历。我以前从未真正使用过ApacheWeb服务器,我在网上找到的一切都是关于防止目录遍历的 我在Ubuntu12.04虚拟机上使用Apache2。我有一个足够好的解决方法 首先,我将/etc/apac

我目前在学校参加渗透测试班。我正在尝试为一个项目创建一个CTF。我的目标之一是建立一个ApacheWeb服务器,允许目录遍历,以便尝试我的CTF的人可以遍历到我的根目录并访问包含加密文件的文件夹。我希望他们能够下载这个文件,这样他们就可以在自己的机器上解除加密。然而,我甚至不知道从哪里开始允许目录遍历。我以前从未真正使用过ApacheWeb服务器,我在网上找到的一切都是关于防止目录遍历的


我在Ubuntu12.04虚拟机上使用Apache2。

我有一个足够好的解决方法

首先,我将
/etc/apache2/sites available/default
中的
DocumentRoot
更改为
“/”
,这样服务器就可以访问
//code>中的所有内容,并在
//code>中创建一个
index.html
文件,以便Apache服务器知道要呈现什么。
index.html
的内部只是

location=“/home/user/server/index.html”;
它呈现要显示的实际索引。我这样做是为了更清楚地表明将进行某种目录遍历。通过这样做,向访问者显示的路径是
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
,文件将显示给他们


我知道这不是真正的目录遍历,但对于这个项目来说,这已经足够解决问题了。

Apache本身不允许创建目录遍历漏洞。您需要使用类似PHP的东西,在这里传递一个
?file=filename
参数,并使用该值的
open()

PHP
open()
函数将解释转义“预期”目录所需的
。/../
序列。然而,Apache本身不允许这样做