任意文件下载(读取)

目录

漏洞简介

产生原因

漏洞利用

常见敏感文件路径

Windows系统

Linux系统

Web应用

PHP

ASP 

ASPX

JSP

漏洞利用方法

注意事项

漏洞测试


漏洞简介

一些网站由于业务需求,往往需要提供文件查看或下载功能。一般来说在文件下载或查看功能处,当文件名参数可控,且系统未对参数进行严格过滤或者过滤不严格时,就能够实现下载服务器上的任何文件,产生任意文件下载漏洞,黑客可以利用( ../ )跳出程序本身的限制目录实现下载任意文件。

产生原因

  • 提供文件下载功能,并接受相关参数变量
  • 使用读取文件的函数
  • 未对相关参数做校验或者控制不严格

漏洞利用

1.存在下载功能的功能点

2.Google hacking 搜索 

  • inurl:"readfile.php?file="
  • inurl:"downfile.php?filename="

常见敏感文件路径

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\win.ini                                                              Windows系统配置文件

Linux系统

/root/.ssh/authorized_keys                                                  公钥文件

/root/.ssh/id_rsa                                                                  私钥文件

/root/.ssh/known_hosts                                                       记录每个访问计算机用户的公钥

/etc/passwd                                                                         保存系统中所有的用户信息

/etc/shadow                                                                         保存系统中所有用户的密码信息

/etc/my.conf                                                                         mysql配置文件

/etc/httpd/conf/httpd.conf                                                     Apache配置文件

/root/.bash_history                                                               用户终端历史命令记录文件

/root/.mysql_history                                                             mysql历史命令记录文件

/var/lib/mlocate/mlocate.db                                                  全文件路径

/usr/local/app/apache2/conf/httpd.conf                                apache2默认配置文件

/usr/local/app/apache2/conf/extra/httpd-vhosts.conf            虚拟网站设置

/usr/local/app/php7/lib/php.ini                                               php相关配置文件

/etc/php5/apache2/php.ini                                                    ubuntu系统的默认路径

Web应用

PHP

  • 获取inc/config.php文件,获取数据库连接字符串中的口令信息

ASP 

  • 获取inc/config.asp文件,获取数据库连接字符串口令,得到数据库口令 

ASPX

  • 获取网站根目录web.config文件,获取数据库连接字符串中的口令信息;
  • 获取bin/*.dll文件,获取网站源码 (不完整代码) , 使用.NET reflector 工具打开编译后的dll文件;

JSP

  • 获取conf/tomcat-user.xml,获取tomcat管理界面的口令信息,上传war包getshell
  • 获取WEB-INF/Web.xml文件,获取数据库连接字符串中的口令信息

漏洞利用方法

虽然我们不知道网站路径,但是我们可以使用" ../.../../ "进行逐层猜测网站路径,案例如下:

  • download.php?file=../../../etc/passwd
  • download.php?file=../../../../index.php
  • download.php?f=file:///etc/passwd
  • readfile.php?f=file:///etc/passwd
  • readfile.php?file=../../../etc/passwd

注意事项

  • 注意../的数量,他代表查询目录父目录的数量
  • 遇到任意文件下载漏洞是,需要至注意下载权限的问题,这个权限能决定下载文件的范围
  • 某些网站提交方式为POST请求,需要使用Burp suite进行抓包
  • 过滤字符或者字母可以通过编码方式绕过

漏洞测试

1.通过Google语法随便找一个网站进行测试

 

2.可以看到成功下载passwd文件,已提交漏洞平台。

猜你喜欢

转载自blog.csdn.net/smli_ng/article/details/126519966