OWASP攻击练习:目录遍历请求部分成功部分返回404的原因咨询
可能的原因分析
首先纠正一个误解:/etc/passwd 和 /home/arun/mywindows.txt 都不在Web服务器根目录下,它们是系统级文件,Web服务器根目录一般是/var/www/html这类路径,你用../../../是跳出Web根目录去访问系统文件。
以下是导致两个请求结果不同的常见原因:
- 文件实际不存在:先确认目标服务器上真的存在
/home/arun/mywindows.txt,可能你假设它存在,但实际路径拼写错误(Linux区分大小写,比如MyWindows.txt和mywindows.txt是不同文件),或者该文件根本没创建。 - 权限限制:Web服务器进程(如
www-data、apache)没有读取/home/arun/mywindows.txt的权限。Linux用户家目录默认权限是700,只有用户本人能访问,Web进程无法进入/home/arun目录,更读不到里面的文件;而/etc/passwd默认是全局可读(权限644),所以Web进程能正常读取。 - 路径遍历防护规则:服务器可能有针对性防护,比如允许访问
/etc目录,但拦截了/home目录的请求,或者对home这类关键词做了过滤,导致请求被修改或直接返回404。 - 符号链接干扰:如果Web根目录的上级目录存在符号链接,你的
../../../跳转路径实际指向的位置可能和预期不符,最终访问的是一个不存在的路径。 - 文件系统差异:虽然你能读取
/etc/passwd说明目标大概率是Linux系统,但如果目标是Windows,/home/arun这种Linux风格路径根本不存在,自然返回404。
内容的提问来源于stack exchange,提问作者Arun Kumar
相关产品推荐
相关产品推荐

