渗透之路基础 -- 目录遍历
目录遍历
192.168.203.128/test/mlbl.php?path=/
path
参数输入指令实现目录遍历
漏洞产生环境
网站提供文件下载,文件储存在服务器中,网站脚本利用代码回去此目录文件显示至网页,若没有进行相关验证,则会产生目录遍历漏洞
突破方式(大佬文章https://www.cnblogs.com/s0ky1xd/p/5823685.html):
- 加密参数传递的数据
在Web应用程序对文件名进行加密之后再提交,比如:downfile.jsp?filename= ZmFuLnBkZg-
,在参数filename用的是Base64加密,而攻击者要想绕过,只需简单的将文件名加密后再附加提交即可。所以说,采用一些有规律或者轻易能识别的加密方式,也是存在风险的。 - 编码绕过
尝试使用不同的编码转换进行过滤性的绕过,比如Url编码,通过对参数进行Url编码提交,downfile.jsp?filename= %66%61%6E%2E%70%64%66
来绕过。 - 目录限定绕过
在有些Web应用程序是通过限定目录权限来分离的。当然这样的方法不值得可取的,攻击者可以通过某些特殊的符号~
来绕过。形如这样的提交downfile.jsp?filename=~/../boot
。能过这样一个符号,就可以直接跳转到硬盘目录下了。 - 绕过文件后缀过滤
一些Web应用程序在读取文件前,会对提交的文件后缀进行检测,攻击者可以在文件名后放一个空字节的编码,来绕过这样的文件类型的检查。
例如:../../../../boot.ini%00.jpg
,Web应用程序使用的Api会允许字符串中包含空字符,当实际获取文件名时,则由系统的Api会直接截短,而解析为../../../../boot.ini
。
在类Unix的系统中也可以使用Url编码的换行符,例如:../../../etc/passwd%0a.jpg
如果文件系统在获取含有换行符的文件名,会截短为文件名。也可以尝试%20,例如:../../../index.jsp%20
- 绕过来路验证
Http Referer :HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的
另一种目录遍历
web服务器配置不当
index of /
搜索语法搜索目录遍历漏洞
intitle:index of
只是学习笔记,未完善内容之后有需要时会补充