目录
- 介绍
- 利用
- 获取数据库配置文件
- 文件名,参数值,目录符号
- 涉及案例:
- Pikachu-文件下载测试-参数
- Zdns-文件下载真实测试-功能点
- 小米路由器-文件读取真实测试-漏洞
- RoarCTF2019-文件读取真题复现-比赛
- 百度杯2017二月-Zone真题复现-比赛拓展
下载和读取都差不多,只是有时候它的显示有点问题
1.文件被解析,则是文件包含漏洞
2.显示源代码,则是文件读取漏洞
3.提示文件下载,则是文件下载漏洞
#文件下载,读取
原理,检测
介绍
使用目录爬取工具,能够直接找到文件对应地址的,这个时候,我们可以通过下载漏洞去下这些文件,这些都是常见文件,一般下载的话,会下载敏感文件
密匙文件:类似密码的文件
这些信息文件能够下载下来的话,就能够得到相关敏感信息,这些敏感信息对于我们后续的渗透是非常有帮助的,这个漏洞是不会影响到权限的丢失,因为一旦有文件下载漏洞的话,我们可以通过这个漏洞下载我们想要的文件,但想要的文件通常是敏感文件或许说对后续渗透有帮助的。比如说得到数据库的配置文件、账号密码,那如果得到账号密码,是可以尝试连接当前数据库的,在数据库里面找到关于网站的相关数据,其中就有网站的相关账号密码
文件下载漏洞和前面的几个漏洞比危害比较小一点,但是他也是一种漏洞
文件读取漏洞基本上都差不多,就是进行文件的读取,获取文件的一个真实代码
利用
数据库配置文件下载或读取后续
敏感文件,我们要知道他的绝对路径才行,但是那些文件一般可以通过扫描或者通过你下载好的文件里面的代码,去分析,代码里面也会涉及到类似文件
http://127.0.0.1:8080/pikachu/vul/unsafedownload/download/ai.png
http://127.0.0.1:8080/pikachu/vul/unsafedownload/execdownload.php?filename=../../../inc/function.php
http://127.0.0.1:8080/pikachu/vul/unsafedownload/download/execdownload.php
…/是用来跨目录的,一般我们用文件下载漏洞来下载敏感文件
获取数据库配置文件
1.扫描工具爬行或扫描地址
2.下载好的文件代码中去分析路径和包含文件获取
可以探测到的文件、已经展示出来的文件,我们称之为可见文件。这些文件下载之后,我们可以去分析这些代码,在里面去翻有没有包含文件、涉及到其它文件,在去下载其它文件。
扫描工具可以扫描到一些常见的一些数据库配置文件地址
拿到数据库配置文件,对我们的渗透是有帮助的,我们就可以对这个数据库进行连接,但是有时候root是不支持外联的,只是说这是个问题,但是这不影响我们后续的一个过程。如果他不是root,我们是不是就可以连接了,而且他是root还是有点机率能连接的,因为数据库默认是root是不能连接,但是管理者可能为了方便,会把他开启,这个也说不准;如果不是root他应该是可以连接,我们直接连接到数据库上面直接得到这个网站上面的密码,就可以用这个账号密码做一些后续的测试了,所以你通过敏感文件是能够拿到下面敏感信息的
这个漏洞攻击就是简简单单,通过网站自身的一个下载功能,来下载一些关于网站的敏感文件
接口密匙信息文件下载或读取后续
文件名,参数值,目录符号
read.xxx?filename=
down.xxx?filename=
readfile.xxx?file=
downfile.xxx?file=
../ ..\ .\ ./等
%00 ? %23 %20 .等
&readpath=、&filepath=、&path=、&inputfile=、&url=、&data=、&readfile=、&menu=、META-INF=、WEB-INE
文件接收的参数值,这些参数值将能决定是不是相应的漏洞,在利用的时候,我们一定要活学活用跨越目录的符号
漏洞是不在乎那个程序的,php也好,java也好。他是通用的,他是不会去考虑脚本不同,漏洞就不一样。都是一样的
我们直接访问后台代码文件和我这里去下载这个文件,看到的是不一样的,如果是一样的,那这种漏洞就不值一提了。
凡是像下载类的网站或者有这种功能的,通通可以测试有没有下载漏洞
涉及案例:
Pikachu-文件下载测试-参数
通过参数来发现漏洞,我们通过替换参数值来下载文件,这就是通过网站参数值来发现漏洞
Zdns-文件下载真实测试-功能点
有下载漏洞就有下载功能
http://down.znds.com/getdownurl/?s=L2Rvd24vMjAyMDA4MTQva2xrXzluMC4wLjJfZGFuZ2JlaS5hcGs=
http://down.znds.com/getdownurl/?s=/down/20200814/klk_2.0.0.2_dangbei.apk
网站对下载的链接进行加密,完全是为了看不出来什么效果,因为这个值是加密的,你在分析的时候你就不知道是什么东西,是不是接上的是类似文件名、文件地址等等。但是当你解密出来的时候,会发现就是对应的一个文件下载
找一个跟文件域名相关的地址,在down下
我们要下载什么文件,我们这里就传输文件的绝对路径,如果网站的下载链接是加密的,我们就去加密
我们要下载的话要去下载脚本文件,像app文件就没有什么价值
在利用这个漏洞的时候,我们需要知道网站脚本的地址,如果不知道在后续的利用上有些困难,但是也不影响我们发现这个漏洞原因
他下载的链接是加密的,我们也得加密,不然无法识别;所以下载漏洞在找的时候,围绕网站下载功能的地方找,然后判断他有没有漏洞,就看他后面的参数,是不是可以进行修改,是不是接上的是文件的名字
小米路由器-文件读取真实测试-漏洞
这个漏洞的产生是多方位的,因为是真实的案例,不方便演示,大家感兴趣的话,可以自己下去玩一下
很多时候,我们去复现的时候,除了自己去搭环境,还可以用fofa去搜,目标是很多的,但是我不建议大家这样去测试,只是这个思路是这样子的
如果目标比较敏感的话,那就搞不好了
漏洞存在是多方面的,自己碰上具体目标的时候,也要学会利用各大公开网站上的poc,这样利用起来非常简单
RoarCTF2019-文件读取真题复现-比赛
打开是个登录框,一般常见的思维是尝试登录,可以先试一下弱口令进行登录,试一下有没有注入点,这些都属于前期的测试
http://40e7b2ba-d51b-4b9a-ab3c-5f34b75d18b3.node3.buuojcn/Download?filename=help.docx
如果我更改help.docx,他会不会去下载对应文件,这就是一个典型的文件下载功能传的一个参数help.docx文件
java开发的习惯,一般文件下载这种都是通过post传递
先下载配置文件,通过配置文件了解网站的文件和目录
这就是通过下载漏洞来进行flag的提取,这个漏洞就是通过网址上面的某一个地址,参数上面跟下载漏洞相关,然后具体分析到
百度杯2017二月-Zone真题复现-比赛拓展
下载或文件读取漏洞:
对应文件:配置文件(数据库,平台,各种等),优先选取和下载的,如果这种文件找不到的话,那就通过操作系统的默认文件来了解网站和服务器的情况。
我们要下载文件的话,我们要确定这种文件是否存在
操作系统的文件是默认会存在的:
https://xz.aliyun.com/t/6594
爬虫扫描地址-分析参数名参数值-文件操作安全-对应脚本
修改提交方式测试-读取WEB配置文件WEB-INE/web.xm1
访问读取对应地址-访问读取flag对应class文件-
(WEB-INF/classes/com/wm/ctf/FlagController.class)
在实战情况下,文件下载漏洞出现的概率没有sql、上传多,但是我们还是需要学习一下,有时候会有异想不到的情况
根据网站自身的一个类型,拿到一个网站和目标之后,我们要通过网站这个类型,要第一时间对漏洞要有自己的想法,有的网站有应用下载功能,像这种的话,出的安全问题,就在下载上面;博客网站上面没有下载,就不用去找下载漏洞,所以漏洞这些东西,都是跟应用点有关的。