任意文件下载(读取)

目录

漏洞简介

产生原因

漏洞利用

常见敏感文件路径

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文件,已提交漏洞平台。

 

### 文件上传与任意文件读取安全问题 在Web应用程序开发过程中,文件上传功能如果实现不当,可能会引入严重的安全隐患——即所谓的“任意文件读取”漏洞。这种情况下,攻击者可能通过特定构造的请求非法访问服务器上的敏感文件。 当涉及到文件上传时,确保所接受的是预期类型的文件至关重要。即使设置了严格的MIME类型检查,也不能完全防止绕过这些限制的行为。因此,采用更加稳健的方法来验证文件的真实性质变得尤为重要[^1]。 对于任意文件读取的风险而言,主要体现在以下几个方面: - **缺乏有效的输入验证**:未能充分过滤用户提交的数据,使得恶意用户能够操纵参数以指向系统内部的关键资源。 - **不完善的路径处理机制**:某些框架或库可能存在缺陷,允许通过特殊字符组合突破既定边界,从而达到越权访问的目的。 - **错误配置的服务组件**:如FTP、SMB等协议栈内存在弱点,也可能成为此类攻击的目标之一[^2]。 为了有效应对上述挑战并构建更为坚固的应用程序防护体系,建议采取如下措施: #### 验证文件内容而非仅依赖扩展名或Content-Type 尽管大多数现代浏览器都会发送正确的`Content-Type`头信息给服务器,但这并不能作为唯一依据。因为这个字段很容易被篡改。相反,应该基于实际的内容来进行判断。例如,可以通过解析文档开头的一系列字节(称为“魔数”),以此确认其真实身份。这种方法不仅适用于图片、视频等多种媒体形式,同时也可用于检测其他二进制格式的文件。 ```python import magic def check_file_type(file_path): mime = magic.Magic(mime=True) file_mime_type = mime.from_file(file_path) return file_mime_type.startswith('image/') or \ file_mime_type.startswith('video/') ``` #### 实施白名单策略限定可操作对象范围 针对那些确实有必要支持动态加载外部资源的功能模块,应当明确规定哪些位置下的项目是可以合法调用的,并将其余部分排除在外。具体做法上,可以考虑设置固定的基地址加上相对路径的形式;同时还要注意规避任何可能导致意外后果的操作符(比如`..`)的存在[^3]。 #### 加强日志记录便于事后审计追踪异常行为 除了事前预防之外,良好的监控手段同样不可或缺。每当发生涉及文件系统的变更动作时都应留下相应的痕迹供后续审查之用。这有助于及时发现潜在威胁以及评估现有防御措施的有效程度。此外,在必要时候还可以配合入侵检测系统共同工作,提高整体安全性水平[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值