WEB漏洞-文件操作之文件下载读取全解

    第32天:WEB漏洞-文件操作之文件下载读取全解 - 图1
    #文件下载,读取
    原理,检测,利用,修复等

    #利用
    数据库配置文件下载或读取后续
    接口密匙信息文件下载或读取后续

    #文件名,参数值,目录符号
    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-INF

    1.文件被解析,则是文件包含漏洞
    2.显示源代码,则是文件读取漏洞
    3.提示文件下载,则是文件下载漏洞


    下载或文件读取漏洞:
    对应文件:配置文件(数据库,平台,各种等)

    #各种协议调用配合

    #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-文件下载真实测试-功能点
    Ø 小米路由器-文件读取真实测试-漏洞
    Ø RoarCTF2019-文件读取真题复现-比赛
    Ø 百度杯2017二月-Zone真题复现-比赛拓展
    爬虫扫描地址-分析参数名参数值-文件操作安全-对应脚本
    修改提交方式测试-读取WEB配置文件WEB-INF/web.xml
    访问读取对应地址-访问读取flag对应class文件-
    (WEB-INF/classes/com/wm/ctf/FlagController.class)

    涉及资源:
    https://www.seebug.org/vuldb/ssvid-98122
    https://www.ichunqiu.com/battalion?t=1&r=57475
    https://blog.csdn.net/Cheng_May/article/details/78600833
    https://buuoj.cn/challenges#%5BRoarCTF%202019%5DEasy%20Java