您当前的位置: 首页 > 

Z3eyOnd

暂无认证

  • 3浏览

    0关注

    117博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

CTFHub----目录遍历

Z3eyOnd 发布时间:2021-08-03 19:11:18 ,浏览量:3

信息收集
    • 目录穿越
    • 目录遍历
      • 概念
      • 原因
      • 漏洞利用
    • 常见的绕过方式
      • 任意文件下载

目录穿越
  1. 点开进去,发现是许多目录,就是目录遍历的考点在这里插入图片描述

  2. 一个一个的试,发现在/4/2,有flag.txt,点开得到flag 在这里插入图片描述

目录遍历 概念
目录遍历是由于web服务器或者web应用程序对用户输入的文件名称
安全性验证不足而导致的一种安全漏洞,使得攻击者通过利用一些
特殊字符就可以绕过服务器的安全限制,访问任意的文件(可以是web
根目录以外的文件),甚至执行系统命令。
原因
目录浏览漏洞是由于网站存在配置缺陷,导致网站目录可以被任意浏
览,这会导致网站很多隐私文件与目录泄露,比如数据库备份文件、
配置文件等,攻击者利用该信息可以为进一步入侵网站做准备
漏洞利用
一般的漏洞利用../../../来进行目录穿越,得到网站的一些目录文档
通用的类Unix系统的目录遍历攻击字符串形如“…/”
对于微软的Windows操作系统以及DOS系统的目录结构,攻击者可以
使用“…/”或者“…\”字符串。
在这种操作系统中,每个磁盘分区有一个独立的根目录(比如我们会把
个人电脑分区成“C盘”、“D盘”等等),并且在所有磁盘分区之上没有更
高级的根目录。这意味着Windows系统上的目录遍历攻击会被隔离在单个
磁盘分区之内(C盘被攻击,D盘不受影响)。
常见的绕过方式
1. 加密性的参数:对传输的数据进行加密后再提交
http://www.***.com/downfile.jsp?file=ZmfdWq==,
对file的数据进行base64进行加密,然后对其进行解密就可以入侵

2.编码绕过:采用不同的编码进行绕过,比如对参数进行URL编码
http://www.***.com/downfile.jsp?file=%66%1E%23%16%5A

3.目录限定绕过
有些web软件通过限定目录权限来分离, 当然这样也是不可取的, 攻击者可以通过某些特定的符号来绕过
比如, 根目录/被限定了权限, 但是可以通过~来进入根目录下的目录 (假设~家目录有权限):
~/../boot   等价于  /boot

4.绕过文件后缀过滤(截断上传原理)
当web程序设置了后缀名检测(黑名单或白名单)的时候, 可以通过%00截断来绕过:
../../../boot.ini%00.jpg   ==>  ../../../boot.ini

5.绕过来路验证
Http Referer : HTTP Referer是header的一部分,当浏览器向web服务
器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面
链接过来的。
在一些Web应用程序中,会有对提交参数的来路进行判断的方法,而绕
过的方法可以尝试通过在网站留言或者交互的地方提交Url再点击或者直
接修改Http Referer即可,这主要是原因Http Referer是由客户端浏览器
发送的,服务器是无法控制的,而将此变量当作一个值得信任源是错误的

任意文件下载

任意文件读取/下载漏洞比目录浏览漏洞危害更大,他不仅会泄露网站的目录结构,而且攻击者可以直接获得网站文件的内容。攻击者可以因此获取到很多机密的文件,比如配置文件,比如 /etc/passwd、/root/.bash_history文件等。

任意文件读取/下载漏洞的挖掘:

通过web漏洞扫描工具对网站实施扫描可能发现任意文件读取/下载漏洞,发送一系列”../”字符来遍历高层目录,并且尝试找到系统的配置文件或者系统中存在的敏感文件。
也可通过判断网站语言,并根据其url中部分提供的参数,进行构造相关的路径信息,如收集到网站中间件版本为apache,则想办法构造../../../ WEB-INF/web.xml等,然后查看其是否可被读取或者下载出来。
有些WAF会过滤../,可以构造 /.%252e/.%252e/.%252e/ , %25对应的是%,%2e对应的是.,所以 .%252e/ 对应的是 ../ 
Windows:
   C:\boot.ini  //查看系统版本
   C:\Windows\System32\inetsrv\MetaBase.xml  //IIS配置文件
   C:\Windows\repair\sam  //存储系统初次安装的密码
   C:\Program Files\mysql\my.ini  //Mysql配置
   C:\Program Files\mysql\data\mysql\user.MYD  //Mysql root
   C:\Windows\php.ini  //php配置信息
   C:\Windows\my.ini  //Mysql配置信息
   ...
Linux:
   /etc/passwd                  #查看用户文件
   /etc/shadow                  #查看密码文件,如果能读取该文件说明是root权限
   /etc/my.cnf 
   /etc/httpd/conf/httpd.conf   #查看apache的配置文件
   /root/.bash_history          #查看历史命令
   /root/.mysql_history         #mysql历史命令记录文件
   /var/lib/mlocate/mlocate.db  #本地所有文件信息
   /etc/ssh/sshd_config         #ssh配置文件,如果对外开放可看到端口
   /proc/self/fd/fd[0-9]*(文件标识符)
   /proc/mounts
   /porc/config.gz
   /root/.ssh/authorized_keys                
   /root/.ssh/id_rsa  
   /root/.ssh/id_ras.keystore
   /root/.ssh/known_hosts
 
程序的配置文件
apache:
    /etc/httpd/conf/httpd.conf
    /etc/apache2/httpd.conf
    /etc/apache2/apache2.conf
 
nginx:
    /etc/nginx/nginx.conf
    /usr/local/nginx/conf/nginx.conf
    /usr/local/etc/nginx/nginx.conf
 
redis:
    /etc/redis.conf
 
index.php?f=../../../../../../etc/passwd

参考资料: https://blog.csdn.net/qq_32108547/article/details/108743541

关注
打赏
1651657201
查看更多评论
立即登录/注册

微信扫码登录

0.0460s