如何在 Apache 中访问 public_html 的父目录?
How do I access the parent directory of public_html in Apache?
我记得不久前读过如何有人可以从网站访问您的计算机文件系统。我想知道怎么做,这样我就可以测试并防止它发生。
运行 Windows 上的 Apache 2.4 通过 XAMPP
我的虚拟主机是这样设置的:
<VirtualHost *:80>
ServerName local.scrap
DocumentRoot "D:/Dropbox/www/scrap/public_html/"
<Directory "D:/Dropbox/www/scrap/">
Order allow,deny
Allow from all
Require all granted
</Directory>
ErrorLog "D:/Dropbox/www/scrap/logs/error.log"
</VirtualHost>
scrap/
中有一个index2.html
,scrap/public_html/
中有一个index.html
hosts 设置为 127.0.0.1 local.scrap
如果我输入 URL http://local.scrap/
,我会得到 index.html。
如果我输入 URL http://local.scrap/../index2.html
它会被重定向到 http://local.scrap/index2.html
为什么 ../ URL 被重定向到 DocumentRoot 路径?
通常,非恶意用户代理会在 URL 中解析 ../,然后再联系服务器。但即使没有它,网络服务器也被设计为不允许在上下文根之外进行这种目录遍历。
您需要使用 telnet/netcat/s_client 进行测试才能确定。
如果网站应用程序代码中存在 directory traversal or LFI 漏洞,那么这确实是可能的。
还有一些webservers have directory traversal vulnerabilities。但是,当前版本的 Apache 在这方面没有已知的弱点。
我记得不久前读过如何有人可以从网站访问您的计算机文件系统。我想知道怎么做,这样我就可以测试并防止它发生。
运行 Windows 上的 Apache 2.4 通过 XAMPP
我的虚拟主机是这样设置的:
<VirtualHost *:80>
ServerName local.scrap
DocumentRoot "D:/Dropbox/www/scrap/public_html/"
<Directory "D:/Dropbox/www/scrap/">
Order allow,deny
Allow from all
Require all granted
</Directory>
ErrorLog "D:/Dropbox/www/scrap/logs/error.log"
</VirtualHost>
scrap/
中有一个index2.html
,scrap/public_html/
中有一个index.html
hosts 设置为 127.0.0.1 local.scrap
如果我输入 URL http://local.scrap/
,我会得到 index.html。
如果我输入 URL http://local.scrap/../index2.html
它会被重定向到 http://local.scrap/index2.html
为什么 ../ URL 被重定向到 DocumentRoot 路径?
通常,非恶意用户代理会在 URL 中解析 ../,然后再联系服务器。但即使没有它,网络服务器也被设计为不允许在上下文根之外进行这种目录遍历。
您需要使用 telnet/netcat/s_client 进行测试才能确定。
如果网站应用程序代码中存在 directory traversal or LFI 漏洞,那么这确实是可能的。
还有一些webservers have directory traversal vulnerabilities。但是,当前版本的 Apache 在这方面没有已知的弱点。