WEB漏洞|目录浏览(目录遍历)漏洞和任意文件读取/下载漏洞

  • A+
所属分类:安全文章

目录

目录浏览(目录遍历)漏洞

任意文件读取/下载漏洞

利用任意文件读取漏洞Getshell





目录浏览(目录遍历)漏洞


目录浏览漏洞是由于网站存在配置缺陷,导致网站目录可以被任意浏览,这会导致网站很多隐私文件与目录泄露,比如数据库备份文件、配置文件等,攻击者利用该信息可以为进一步入侵网站做准备。


目录浏览漏洞的探测 可以利用web漏洞扫描器扫描web应用进行检测,也可通过搜索,网站标题包含 “index of” 关键词的网站进行访问


目录浏览漏洞的危害攻击者通过访问网站某一目录时,该目录没有默认首页文件或没有正确设置默认首页文件,将会把整个目录结构列出来,将网站结构完全暴露给攻击者;攻击者可能通过浏览目录结构,访问到某些隐秘文件(如phpinfo文件、服务器探针文件、网站管理员后台访问地址、数据库连接文件等)。


目录浏览漏洞的预防


  • IIS中关闭目录浏览功能:在IIS的网站属性中,勾去“目录浏览”选项,重启IIS。

  • Apache中关闭目录浏览功能:打开Apache配置文件httpd.conf,查找“Options Indexes FollowSymLinks”,修改为“ Options -Indexes”(减号表示取消,保存退出,重启Apache)。

  • Nginx 中默认不会开启目录浏览功能,若您发现当前已开启该功能,可以编辑nginx.conf文件,删除如下两行:autoindex on;autoinxex_exact_size on,然后重启Nginx。


WEB漏洞|目录浏览(目录遍历)漏洞和任意文件读取/下载漏洞



任意文件读取/下载漏洞


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


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


  • 通过web漏洞扫描工具对网站实施扫描可能发现任意文件读取/下载漏洞,发送一系列”../”字符来遍历高层目录,并且尝试找到系统的配置文件或者系统中存在的敏感文件。

  • 也可通过判断网站语言,并根据其url中部分提供的参数,进行构造相关的路径信息,如收集到网站中间件版本为apache,则想办法构造../../../ WEB-INF/web.xml等,然后查看其是否可被读取或者下载出来。

  • 有些WAF会过滤../,可以构造 /.%252e/.%252e/.%252e/ , %25对应的是%,%2e对应的是.,所以 .%252e/ 对应的是 ../ 


WEB漏洞|目录浏览(目录遍历)漏洞和任意文件读取/下载漏洞


任意文件读取/下载漏洞的危害:下载服务器任意文件,如脚本代码、服务及系统配置文件等。可用得到的代码进一步代码审计,得到更多可利用漏洞。



Windows:   C:boot.ini  //查看系统版本   C:WindowsSystem32inetsrvMetaBase.xml  //IIS配置文件   C:Windowsrepairsam  //存储系统初次安装的密码   C:Program Filesmysqlmy.ini  //Mysql配置   C:Program Filesmysqldatamysqluser.MYD  //Mysql root   C:Windowsphp.ini  //php配置信息   C:Windowsmy.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

针对Linux系统任意文件下载的几种思路:

  • 下载源代码审计

  • 数据库备份

  • 信息收集

  • 中间件


任意文件读取/下载漏洞的预防:


  • 净化数据:对用户传过来的文件名参数进行统一编码,对文件类型进行白名单控制,对包含恶意字符或者空字符的参数进行拒绝。

  • web应用程序可以使用chroot环境包含被访问的web目录,或者使用绝对路径+参数来访问文件目录,使其即使越权也在访问目录之内。www目录就是一个chroot应用。由chroot创造出的那个根目录,叫做“chroot监狱”(所谓"监狱"就是指通过chroot机制来更改。某个进程所能看到的根目录,即将某进程限制在指定目录中,保证该进程只能对该目录及其子目录的文件有所动作,从而保证整个服务器的安全,详细具体chroot的用法,可参考http://blog.csdn.net/frozen_fish/article/details/2244870

  • 任意文件下载漏洞也有可能是web所采用的中间件的版本低而导致问题的产生,例如ibm的websphere的任意文件下载漏洞,需更新其中间件的版本可修复。

  • 要下载的文件地址保存至数据库中。

  • 文件路径保存至数据库,让用户提交文件对应ID下载文件。

  • 用户下载文件之前需要进行权限判断。

  • 文件放在web无法直接访问的目录下。

  • 不允许提供目录遍历服务。

  • 公开文件可放置在web应用程序下载目录中通过链接进行下载。


任意文件读取/下载漏洞的场景出现在文件读取或者展示图片等对文件读取交互的功能块。


利用任意文件读取漏洞Getshell


想直接利用任意文件读取来Getshell还是比较难的。如果目标网站是Tomcat的话,可以利用文件读取漏洞来读取Tomcat的tomcat-users.xml配置文件,然后得到Tomcat管理页面的账号密码,登录,上传War包Getshell。具体上传war包getshell,传送门:https://blog.csdn.net/qq_36119192/article/details/90446112#%E5%BC%B1%E5%8F%A3%E4%BB%A4%2BGetshell


然而,如何能知道Tomcat的tomcat-users.xml配置文件的绝对路径呢?这确实很难找。这里有一个思路就是,我们可以通过读取 .bash_history文件来查看管理员的历史命令,来得到Tomcat的安装路径,从而得知tomcat-users.xml的绝对路径。

传送门:https://blog.csdn.net/xiaoi123/article/details/80803390



WEB漏洞|目录浏览(目录遍历)漏洞和任意文件读取/下载漏洞








来源:谢公子的博客

责编:Zuo

WEB漏洞|目录浏览(目录遍历)漏洞和任意文件读取/下载漏洞

WEB漏洞|目录浏览(目录遍历)漏洞和任意文件读取/下载漏洞
WEB漏洞|目录浏览(目录遍历)漏洞和任意文件读取/下载漏洞
由于文章篇幅较长,请大家耐心。如果文中有错误的地方,欢迎指出。有想转载的,可以留言我加白名单。
最后,欢迎加入谢公子的小黑屋(安全交流群)(QQ群:783820465)
WEB漏洞|目录浏览(目录遍历)漏洞和任意文件读取/下载漏洞
WEB漏洞|目录浏览(目录遍历)漏洞和任意文件读取/下载漏洞

WEB漏洞|目录浏览(目录遍历)漏洞和任意文件读取/下载漏洞




本文始发于微信公众号(谢公子学安全):WEB漏洞|目录浏览(目录遍历)漏洞和任意文件读取/下载漏洞

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: