文件操作之文件下载、文件读取

本文章仅做学习交流、如有违法行为,上传者自行负责

原理: 

原理案例

检测

怎么寻找文件下载漏洞?

利用方面

文件目录的获取分两种

文件类型:常见文件、敏感文件

实际案例演示

Javaweb文件下载代码

 当贝市场(通过功能点找到漏洞)

RoarCTF2019-文件读取真题复现-比赛(通过查看参数值发现漏洞 )

 小米路由器(文件读取)CVE-2019-18371


原理: 

由于网站文件直接进行访问时看见的是不一样的,源代码时不对外进行公开的,

而通过网站自带的下载功能进行下载,可以浏览到该网站的源代码

原理案例

这里以pikachu靶场为例首先网站存在下载,点击链接就会对文件进行下载

 复制下载链接,对下载地址和文件地址进行分析进行分析

 文件下载地址: 

http://192.168.248.129:801/pikachu/vul/unsafedownload/execdownload.php?filename=kb.png

​ 

文件地址:

http://192.168.248.129:801/pikachu/vul/unsafedownload/download/kb.png

  当进行替换?filename=文件名,所带的文件名字,随着下载的文件也会变动

说明所下载的文件是根据filename=所传参的文件名 ,而我们想下载比他高一级目录的文件

如:进行下载unsafedownload目录下的execdownload.php文件就是:通过../访问上一级

http://192.168.248.129:801/pikachu/vul/unsafedownload/execdownload.php?filename=../execdownload.php

那么此时就有人问,那他怎么知道有哪些目录和目录下存在什么文件

这个是可以通过目录扫描工具和目录爬行进行获取的,也可以通过已经获取的可见文件进行分析

好比当我们下载了execdownload.php,打开之后发现这里有一个inc

可能存在inc这个目录

 果不其然

如果遇到这种情况,可能是因为phpstudy中的允许目录没有开 

 此时在inc目录下,可以看见有存在的一些配置文件,当我们想进行下载

就可以尝试使用以上方式进行推断,通过../进行跨目录

 然后根据分析我们需要往上跨三层目录,然后进入inc目录下进行下载function.php文件

http://192.168.248.129:801/pikachu/vul/unsafedownload/execdownload.php?filename=../../../inc/function.php

config.inc.php是数据库的一个敏感文件,也是可以通过扫描工具扫出来的

此时进行下载到的config.inc.php文件,将其打开就是数据库的一个配置文件,

可以对后续渗透有所帮助,数据库默认不是root不会进行连接,但是也不能保证人家不会开启

通过网站自身下载功能进行下载一些自己想要的文件

检测

怎么寻找文件下载漏洞?

通过手工去寻找存在下载的一个功能对方,以及参数值,传参值可能会进行加密

#参数值后接上是否为文件或文件链接
read.xxx?filename=
down.xxx?filename=
readfile.xxx?file=
downfile.xxx?file=
../    ..\ ./ ./等
%00 ?     %23    %20 .等
&readpath=、&filepath=、&path=、&inputpath=、&url=、&data=、
&readfile=、&menu=、META-INF=、WEB-INF=、

下载漏洞哪里测?

围绕网站下载功能点进行查找,

下载漏洞怎么判断存在?(如存在加密先进行解密)

然后查看下载点传参值后面是不是可以进行修改,是否未一个文件名

利用方面

该漏洞利用方面不会直接影响到权限丢失,但是可以对后续的渗透做更多得帮助

文件目录的获取分两种

1、扫描工具爬行或扫描地址(御剑扫描)

2、下载公开的文件代码中分析路径和包含文件获取、url查看分析

网上找到一样的源文件程序,查看他的代码框架分布

文件类型:常见文件、敏感文件

都是可以通过用爬行工具,目录扫描工具

可见文件: 如在进行访问文件的时候url上可以探针到文件地址

敏感文件:关于数据库配置文件、接口文件、密钥信息文件(分析或者扫描)

如:数据库配置文件可以获取数据库账号密码然后进行数据库连接,从而找到网站的后台账号密码

通常进行下载配置文件,但是同样除了配置文件之外也可以下载Windows和Linux自带的系统文件

这些都是默认存在的 (优先配置文件,如果找不到尝试系统文件)

任意文件下载漏洞 - N南风北巷X - 博客园 (cnblogs.com)

实际案例演示

Javaweb文件下载代码

javaWeb实现文件下载_做个坏男人的博客-CSDN博客

(无论什么脚本都是可能存在下载漏洞的)

 当贝市场(通过功能点找到漏洞)

智能电视应用市场_安卓电视软件商店_Android TV APP下载_智能电视游戏下载_ZNDS智能电视网

对其进行下载文件,然后查看下载地址

http://down.znds.com/getdownurl/?s=L2Rvd24vMjAyMjA4MzAvdHhzcDE2MTU4XzEwLjMuMC4xMDEyX2RhbmdiZWkuYXBr

 此时我们发现该地址进行了加密,我们对其后面加密进行解密

/down/20220830/txsp16158_10.3.0.1012_dangbei.apk

得出访问以下地址链接则会进行下载,那么我们如果把地址进行更改,

http://down.znds.com/getdownurl/?s=/down/20220830/txsp16158_10.3.0.1012_dangbei.apk

好比下载chinaid.php文件

则是

http://down.znds.com/getdownurl/?s=绝对路径/chinaid.php

进行加密

http://down.znds.com/getdownurl/?s=加密内容

RoarCTF2019-文件读取真题复现-比赛(通过查看参数值发现漏洞 )

地址:  BUUCTF在线评测 (buuoj.cn) BUUCTF在线评测 (buuoj.cn)

进入之后时一个登录界面

尝试弱口令登录无效

 点击help文件,发现传参和文件名上去,可能存在文件下载漏洞

 此时我们会发现这里提示了提示文件不存在,并可能是Java编写(不能只相信别人告诉你的)

 而Java中下载是需要以post方式进行提交的,所以我们换成post提交方式,

发现会进行下载

 

 然后拿到文件被告知flag不在这里

 通过抓包发现对方是openresty服务器,确实是所属Java语言

 那么就可以进行(这里重点讲的是文件下载,那么回到主题)

 而在Java中存在这么一个配置文件:WEB-INT/WEB.XML存在(安全目录)

web-inf_百度百科 (baidu.com)

 打开文件后会发现,存在其他文件的一个目录情况,以及我们需要的flag

 由于是Javaweb,所以我们直接访问是不行的,需要通过配置文件的class目录加上以下地址访问

 并且是class文件,然后返回的结果中存在提示flag就在附近

 通过提示,发现上方存在base64加密,进行解密获取到了flag

 小米路由器(文件读取)CVE-2019-18371

参考文章:小米路由器远程任意文件读取漏洞(CVE-2019-18371) - 知道创宇 Seebug 漏洞平台

由于未找到适合的测试对象,所以没有进行测试

这个实例主要是想说明,无论是在web网页上还是硬件设备上,都可能进行存在下载漏洞

在其尾部更换此链接即可进行下载配置文件api-third-party/download/extdisks../etc/shadow

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值