文件下载读取
原理
显示源代码,则为文件读取漏洞
提示文件下载,则为文件下载漏洞
文件被解析成脚本语言,则为文件包含漏洞
漏洞检测点
文件名
read.xxx?filename=
down.xxx?filename=
参数值
&readpath= &filepath= &path= &inputfile= &url= &data= &readfile= &menu= META-INF= WEB-INF
注意
参数值有的会用加密算法进行加密,所以在下载想要的文件,需要对该文件路径进行加密
目录符号
../
..\
./
.\
等
利用
常见文件
后台首页日志等可见文件
敏感文件
数据库配置文件下载或读取及后续
接口密匙信息文件下载或读取及后续
靶场
pikachu任意文件下载
访问靶场后查看右键复制图片地址进行查看
得到图片地址为http://127.0.0.1:8080/pikachu/vul/unsafedownload/download/ai.png
右键复制查看下载地址
得到下载地址为http://127.0.0.1:8080/pikachu/vul/unsafedownload/execdownload.php?filename=ai.png
现在我们通过漏洞下载execdownload.php
文件,查看其源代码,但由于execdownload.php
文件在ai.png
的上一级目录,所以我们构造的攻击语句为
1 | http://127.0.0.1:8080/pikachu/vul/unsafedownload/execdownload.php?filename=../execdownload.php |
得到源码,得到下载漏洞目录是download/
接下来我们通过该漏洞去下载敏感文件或配置文件
但一般这些文件需要知道绝对路径,我们可以使用扫描器去扫,用大一点的字典去跑
[RoarCTF 2019]Easy Java
Java开发的项目文件下载一般用POST传参
此题读取WEB配置文件WEB-INF/web.xml
https://blog.csdn.net/ChenZIDu/article/details/103533554
https://blog.csdn.net/silencediors/article/details/102579567
“百度杯”CTF比赛 2017 二月场-Zone
https://www.ichunqiu.com/writeup/detail/4941
案例
小米路由器远程任意文件读取漏洞
Java文件下载
参考
https://blog.csdn.net/Cheng_May/article/details/78600833
拓展
mvc框架:model view controller