文件操作之文件下载读取

文件下载,读取

原理,检测,利用,修复等

1
2
3
4
1.文件被解析,则是文件包含漏洞
2.显示源代码,则是文件读取漏洞
3.提示文件下载,则是文件下载漏洞
4.文件被删除,则是文件删除漏洞 服务器上的文件能够被删除

文件下载

漏洞检测

白盒测试:代码审计
黑盒测试:
1、漏扫工具
2、公开漏洞
3、手工看参数值及功能点(资源下载)

利用

1、常见文件 - 后台首页日志等可见文件
2、敏感文件 - 配置文件(数据库,平台,脚本语言等)
- 各种接口文件
- 密钥信息等文件

http://127.0.0.1/pikachu/vul/unsafedownload/execdownload.php?filename=ai.png
http://127.0.0.1/pikachu/vul/unsafedownload/download/ai.png
http://127.0.0.1/pikachu/vul/unsafedownload/execdownload.php?filename=../down_nba.php

如何去获取敏感文件

1、通过扫描工具或者爬虫爬取 御剑、A7kbscan-WebPathBrute
2、通过读取其他文件的信息并分析其路径

文件下载漏洞url特点

文件名、参数值、目录符号
read.xxx?filename=
down.xxx?filename=
readfile.xxx?file=
downfile.xxx?file=

&readpath=、&filepath=、&path=、&inputfile=、&url=、&data=、&readfile=、&menu=、META-INF= 、WEB-INF

../ ..\ .\ ./ 等
%00 ? %23 %20 等

各种协议调用配合
Javaweb 文件下载代码

https://blog.csdn.net/Cheng_May/article/details/78600833

<%@ page language=”java” import=”java.util.*” pageEncoding=”UTF-8”%>
<%
String path = request.getContextPath();
String basePath =
request.getScheme()+”://“+request.getServerName()+”:”+request.getServerPort()+path+”/“;
%>

文件下载
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding(“UTF-8”);
//设置 ContentType 字段值
response.setContentType(“text/html;charset=utf-8”);
//获取所要下载的文件名称
String filename = request.getParameter(“filename”);
//下载文件所在目录
String folder = “/filename/“;
//通知浏览器以下载的方式打开response.addHeader(“Content-type”, “appllication/octet-stream”);
response.addHeader(“Content-Disposition”, “attachment;filename=”+filename);
//通知文件流读取文件
InputStream in = getServletContext().getResourceAsStream(folder+filename);
//获取 response 对象的输出流
OutputStream out = response.getOutputStream();
byte[] buffer = new byte[1024];
int len;
//循环取出流中的数据
while((len = in.read(buffer)) != -1){
out.write(buffer,0,len);

}
}

涉及案例

Pikachu文件下载漏洞原理演示
zdns真实网站文件下载测试-功能点 https://www.znds.com/
RoarCTF2019-Easy Java-文件下载读取真题复现
七日情侣真实网站渗透测试 http://www.danhaoteng.com
小米路由器-文件读取真实测试-漏洞

涉及资源

https://blog.csdn.net/Cheng_May/article/details/78600833 javaWeb文件下载代码
https://buuoj.cn/challenges#%5BRoarCTF%202019%5DEasy%20Java CTF考题
https://www.seebug.org/vuldb/ssvid-98122 小米路由器远程任意文件读取漏洞