原理: 

原理案例

检测

怎么寻找文件下载漏洞?

利用方面

文件目录的获取分两种

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

实际案例演示

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

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部