本文章仅做学习交流、如有违法行为,上传者自行负责
原理:
原理案例
检测
怎么寻找文件下载漏洞?
利用方面
文件目录的获取分两种
文件类型:常见文件、敏感文件
实际案例演示
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文章来源:https://www.toymoban.com/news/detail-778517.html
文章来源地址https://www.toymoban.com/news/detail-778517.html
到了这里,关于文件操作之文件下载、文件读取的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!