Web安全-任意文件下载漏洞

简介: Web安全-任意文件下载漏洞

前言
任意文件下载漏洞,正常的利用手段是下载服务器文件,如脚本代码,服务器配置或者是系统配置等等。但是有的时候我们可能根本不知道网站所处的环境,以及网站的路径,这时候我们只能利用../../来逐层猜测路径,让漏洞利用变得繁琐。

漏洞介绍

一些网站由于业务需求,往往需要提供文件查看或文件下载功能,但若对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意敏感文件,这就是文件查看与下载漏洞。

漏洞验证

index.php?f=../../../../../../etc/passwd
index.php?f=../index.php
index.php?f=file:///etc/passwd
【区分】当参数f的参数值为php文件时,若是文件被解析则是文件包含漏洞,若显示源码或提示下载则是文件查看与下载漏洞。

利用条件

存在读文件的函数

读取文件的路径用户可控且未校验或校验不严

输出了文件内容

漏洞危害

下载服务器任意文件,如脚本代码、服务及系统配置文件等;
可用得到的代码进一步代码审计,得到更多可利用漏洞。
漏洞挖掘
可以用Google hacking或Web漏洞扫描器。

Google search利用语法:inurl:"readfile.php?file="

从链接上看,形如:

• download.php?path=
• download.php?file=
• down.php?file=
• data.php?file=
• readfile.php?file=
• read.php?filename=

1
2
3
4
5
6
从参数名看,形如:

• &RealPath=
• &FilePath=
• &filepath=
• &Filepath=
• &Path=
• &path=
• &inputFile=
• &Inputfile=
• &url=
• &urls=
• &Lang=
• &dis=
• &data=
• &Data=
• &readfile=
• &filep=
• &src=
• &menu=

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
当遇到一个任意文件下载时,我们的一般利用思路:

下载常规的配置文件,例如: ssh,weblogic,ftp,mysql等相关配置
下载各种.log文件,从中寻找一些后台地址,文件上传点之类的地方,如果运气好的话会获得一些前辈们的后门。
下载web业务文件进行白盒审计,利用漏洞进一步攻入服务器。
【注意】当我们遇到一个任意文件下载漏洞时首先要注意下载的权限问题,因为权限决定我们能下载的文件范围。

尝试读取/root/.bash_history看自己是否具有root权限。如果没有的话。我们只能按部就班的利用../来回跳转读取一些.ssh下的配置信息文件,读取mysql下的.bash_history文件,来查看是否记录了一些可以利用的相关信息。然后逐个下载我们需要审计的代码文件,但是下载的时候变得很繁琐,我们只能尝试去猜解目录,然后下载一些中间件的记录日志进行分析。

总体来说,任意文件下载漏洞的利用主要是为了信息收集,我们通过对服务器配置文件的下载,获取到大量的配置信息、源码,从而根据获取的信息来进一步挖掘服务器漏洞从而入侵。以下整理了一些下载利用文件:

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配置信息
C:\Windows\win.ini //Windows系统的一个基本系统配置文件

Linux:
/root/.ssh/authorized_keys
/root/.ssh/id_rsa
/root/.ssh/id_ras.keystore
/root/.ssh/known_hosts //记录每个访问计算机用户的公钥
/etc/passwd
/etc/shadow
/etc/my.cnf //mysql配置文件
/etc/httpd/conf/httpd.conf //apache配置文件
/root/.bash_history //用户历史命令记录文件
/root/.mysql_history //mysql历史命令记录文件
/proc/mounts //记录系统挂载设备
/porc/config.gz //内核配置文件
/var/lib/mlocate/mlocate.db //全文件路径
/porc/self/cmdline //当前进程的cmdline参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
详细利用

JSP站点
尝试下载tomcat-users.xml文件,里面保存了管理Tomcat的账号密码,该文件在:Tomcat安装目录/conf/tomcat-users.xml,下载该文件之后,就能获取管理员账号密码,然后登陆管理后台,部署带有木马文件的war包。

aspx站点
aspx站点一般后台都是SQL Server数据库,因此利用该漏洞的最简单的方法是下载网站根目录下的web.config文件,该文件中一般含有数据库的用户名和密码。

asp站点
一般的asp站点都是Access数据库,而Access数据库可以直接下载,因此利用该漏洞比较简便的方法就是直接下载Access数据库,找到管理员密码登陆后台,利用后台的上传功能,上传shell。首先目的是找到数据库文件名以及存放的路径。找到网站与数据库操作的动态页面,动态页面中一般使用include包含连接数据库的配置文件。一般网站的管理后台页面会包含这个信息,所以可以使用任意文件下载漏洞下载管理后台页面,例如admin.asp/mamage.asp等。在这些文件中一般会写有数据库文件的路径以及文件名。直接下载数据库文件可能下载不了,因为管理员一般会做限制,禁止直接下载mdb文件,可以使用任意文件下载漏洞来下载数据库文件。

php站点
php一般是使用MySQL数据库, 一般MySQL数据库禁止远程连接,但是可以使用phpMyAdmin进行管理。同意,尝试下载数据库连接文件,conf/config.php等等,获取数据库账户密码之后,如果是root权限,在知道网站绝对路径的情况下,尝试直接写入一句话木马。

修复方案
过滤.(点),使用户在url中不能回溯上级目录;

正则严格判断用户输入参数的格式;

php.ini配置open_basedir限定文件访问范围。

实际案例
【漏洞描述】

1、漏洞标题:xxx管理平台任意文件下载
2、漏洞简要描述:xxx平台任意文件下载
3、漏洞地址:xxxxx
4、漏洞类型:WEB漏洞
5、漏洞等级:高危漏洞
6、漏洞大类:任意文件下载漏洞
7、漏洞影响:可通过该漏洞下载etc/shadow, WEB-INF/classes/config.prorerties数据库配置文件等,登录oracle数据库,泄露大量信息
8、漏洞修复建议:限制…/符号的使用,文件下载时判断输入的路径,最好的方法是文件应该在数据库中进行一一对应,避免通过输入绝对路径来获取文件

【攻击过程】

1、进入该网站后->通知公告>下载附件

2、burpsuite抓包,查看文件下载的参数filepath,发现这个是通过绝对路径来获取资源,于是我们可以利用这个点来任意文件下载:
3、通过报错获取网站的绝对路径:/data/webapps/LawPlatform
4、下载数据库配置文件

路径为:../../../../data/webapps/LawPlatform/WEB-INF/classes/config.properties(具体看开发人员如何部署)
5、连接oracle数据库,连接成功。
当然还可以有很多用途,反正尽量把所有重要的配置文件以及代码走一遍流程,尽可能最大化的渗透进去。
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_39190897/article/details/103118805

目录
相关文章
|
2天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
28天前
|
运维 Cloud Native Devops
一线实战:运维人少,我们从 0 到 1 实践 DevOps 和云原生
上海经证科技有限公司为有效推进软件项目管理和开发工作,选择了阿里云云效作为 DevOps 解决方案。通过云效,实现了从 0 开始,到现在近百个微服务、数百条流水线与应用交付的全面覆盖,有效支撑了敏捷开发流程。
19258 29
|
29天前
|
人工智能 自然语言处理 搜索推荐
阿里云Elasticsearch AI搜索实践
本文介绍了阿里云 Elasticsearch 在AI 搜索方面的技术实践与探索。
18798 20
|
28天前
|
Rust Apache 对象存储
Apache Paimon V0.9最新进展
Apache Paimon V0.9 版本即将发布,此版本带来了多项新特性并解决了关键挑战。Paimon自2022年从Flink社区诞生以来迅速成长,已成为Apache顶级项目,并广泛应用于阿里集团内外的多家企业。
17505 13
Apache Paimon V0.9最新进展
|
30天前
|
存储 人工智能 前端开发
AI 网关零代码解决 AI 幻觉问题
本文主要介绍了 AI Agent 的背景,概念,探讨了 AI Agent 网关插件的使用方法,效果以及实现原理。
18693 15
|
28天前
|
人工智能 自然语言处理 搜索推荐
评测:AI客服接入钉钉与微信的对比分析
【8月更文第22天】随着人工智能技术的发展,越来越多的企业开始尝试将AI客服集成到自己的业务流程中。本文将基于《10分钟构建AI客服并应用到网站、钉钉或微信中》的解决方案,详细评测AI客服在钉钉和微信中的接入流程及实际应用效果,并结合个人体验分享一些心得。
9907 9
|
1月前
|
消息中间件 弹性计算 关系型数据库
函数计算驱动多媒体文件处理解决方案体验评测
从整体解读到部署体验,多方位带你了解如何利用函数计算驱动多媒体文件处理,告别资源瓶颈。
10441 13
|
22天前
|
存储 JSON Serverless
西游再现,函数计算一键部署 Flux 超写实文生图模型部署
参与体验活动生成西游人物图像,既有机会赢取好礼!本次实验在函数计算中内置了flux.1-dev-fp8大模型,通过函数计算+Serverless应用中心一键部署Flux模型,快速生成超写实图像。首次开通用户可领取免费试用额度,部署过程简单高效。完成部署后,您可以通过修改提示词生成各种风格的图像,体验Flux模型的强大绘图能力。
西游再现,函数计算一键部署 Flux 超写实文生图模型部署
|
1月前
|
SQL 容灾 关系型数据库
让X不断延伸, 从跨AZ到跨Region再到跨Cloud
本文从“空间”这一维度,聊一聊PolarDB-X在跨空间部署能力上的不断发展和延伸,以及在不同空间范围下的高可用和容灾能力,并着重介绍一下最新的产品能力——GDN(Global Database Network)。
|
1月前
|
缓存 测试技术 调度
PolarDB-X的TPC-H列存执行计划
本文从官方的角度逐条解析PolarDB-X在TPC-H列存执行计划的设计要点。这些要点不仅包含了各项优化的原理,还提供了相关的证明与代码实现,希望帮助读者更深入地理解PolarDB-X的列存优化器。
7873 12