原理:
原理案例
检测
怎么寻找文件下载漏洞?
利用方面
文件目录的获取分两种
文件类型:常见文件、敏感文件
实际案例演示
Javaweb文件下载代码
当贝市场(通过功能点找到漏洞)
RoarCTF2019-文件读取真题复现-比赛(通过查看参数值发现漏洞 )
小米路由器(文件读取)CVE-2019-18371
复制下载链接,对下载地址和文件地址进行分析进行分析
文件下载地址:
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不会进行连接,但是也不能保证人家不会开启
通过网站自身下载功能进行下载一些自己想要的文件
敏感文件:关于数据库配置文件、接口文件、密钥信息文件(分析或者扫描)
如:数据库配置文件可以获取数据库账号密码然后进行数据库连接,从而找到网站的后台账号密码
通常进行下载配置文件,但是同样除了配置文件之外也可以下载Windows和Linux自带的系统文件
这些都是默认存在的 (优先配置文件,如果找不到尝试系统文件)
任意文件下载漏洞 - N南风北巷X - 博客园 (cnblogs.com)
此时我们发现该地址进行了加密,我们对其后面加密进行解密/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=加密内容
进入之后时一个登录界面
尝试弱口令登录无效
点击help文件,发现传参和文件名上去,可能存在文件下载漏洞
此时我们会发现这里提示了提示文件不存在,并可能是Java编写(不能只相信别人告诉你的)
而Java中下载是需要以post方式进行提交的,所以我们换成post提交方式,
发现会进行下载
然后拿到文件被告知flag不在这里
通过抓包发现对方是openresty服务器,确实是所属Java语言
那么就可以进行(这里重点讲的是文件下载,那么回到主题)
而在Java中存在这么一个配置文件:WEB-INT/WEB.XML存在(安全目录)
web-inf_百度百科 (baidu.com)
打开文件后会发现,存在其他文件的一个目录情况,以及我们需要的flag
由于是Javaweb,所以我们直接访问是不行的,需要通过配置文件的class目录加上以下地址访问
并且是class文件,然后返回的结果中存在提示flag就在附近
通过提示,发现上方存在base64加密,进行解密获取到了flag
在其尾部更换此链接即可进行下载配置文件api-third-party/download/extdisks../etc/shadow
发表评论 取消回复