渗透之路基础 -- 目录遍历

目录遍历

192.168.203.128/test/mlbl.php?path=/

path 参数输入指令实现目录遍历

漏洞产生环境

​ 网站提供文件下载,文件储存在服务器中,网站脚本利用代码回去此目录文件显示至网页,若没有进行相关验证,则会产生目录遍历漏洞

突破方式(大佬文章https://www.cnblogs.com/s0ky1xd/p/5823685.html):

  1. 加密参数传递的数据
    在Web应用程序对文件名进行加密之后再提交,比如:downfile.jsp?filename= ZmFuLnBkZg- ,在参数filename用的是Base64加密,而攻击者要想绕过,只需简单的将文件名加密后再附加提交即可。所以说,采用一些有规律或者轻易能识别的加密方式,也是存在风险的。
  2. 编码绕过
    尝试使用不同的编码转换进行过滤性的绕过,比如Url编码,通过对参数进行Url编码提交,downfile.jsp?filename= %66%61%6E%2E%70%64%66来绕过。
  3. 目录限定绕过
    在有些Web应用程序是通过限定目录权限来分离的。当然这样的方法不值得可取的,攻击者可以通过某些特殊的符号~来绕过。形如这样的提交downfile.jsp?filename=~/../boot。能过这样一个符号,就可以直接跳转到硬盘目录下了。
  4. 绕过文件后缀过滤
    一些Web应用程序在读取文件前,会对提交的文件后缀进行检测,攻击者可以在文件名后放一个空字节的编码,来绕过这样的文件类型的检查。
    例如:../../../../boot.ini%00.jpg,Web应用程序使用的Api会允许字符串中包含空字符,当实际获取文件名时,则由系统的Api会直接截短,而解析为../../../../boot.ini
    在类Unix的系统中也可以使用Url编码的换行符,例如:../../../etc/passwd%0a.jpg如果文件系统在获取含有换行符的文件名,会截短为文件名。也可以尝试%20,例如: ../../../index.jsp%20
  5. 绕过来路验证
    Http Referer :HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的

另一种目录遍历

​ web服务器配置不当

index of /

​ 搜索语法搜索目录遍历漏洞

intitle:index of

只是学习笔记,未完善内容之后有需要时会补充

posted @ 2019-09-16 19:27  r0ckysec  阅读(...)  评论(...编辑  收藏