1. 程式人生 > >web安全(6)-- 任意檔案上傳漏洞

web安全(6)-- 任意檔案上傳漏洞

1.1 漏洞描述

    上傳漏洞這個顧名思義,就是攻擊者通過上傳木馬檔案,直接得到WEBSHELL,危害等級超級高,現在的入侵中上傳漏洞也是常見的漏洞。

    導致該漏洞的原因在於程式碼作者沒有對訪客提交的資料進行檢驗或者過濾不嚴,可以直接提交修改過的資料繞過副檔名的檢驗。

1.2 漏洞危害

     1)可以得到WEBSHELL

     2)上傳木馬檔案,可以導致系統癱瘓

1.3 漏洞演示


    我們來看看下面這段檔案上傳程式碼,使用的是common-fileupload.jar和common-io.jar UploadServlet.java訪問路徑/UploadServlet

/**
 * 檔案上傳
 */
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
    String root = request.getServletContext().getRealPath("/upload");
    DiskFileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    try {
        List<FileItem> list = upload.parseRequest(request);
        for(FileItem it:list){
            //如果是file檔案型別
            if(!it.isFormField()){
                it.write(new File(root+"/"+it.getName()));
                response.getWriter().write("success");
            }
        }
    } catch (Exception e) {
        try {
            response.getWriter().write("exception");
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        e.printStackTrace();
    }
}

    前端index.jsp有一個上傳檔案的表單

<form  action="/load/UploadServlet" method="post" enctype="multipart/form-data">
    <input type="file" name="file"/>
    <input type="submit" value="submit"/>        
</form>

    我們將專案釋出到tomcat並且訪問http://localhost:8080/load/


    選擇要上傳的檔案提交表單.檔案上傳也成功,在upload目錄下也有我們所上傳的檔案. (如果是你一個剛畢業剛入行的新人,你可能看不出任何問題),可能很多老鳥大神都知道這個上傳功能存在什麼問題,要罵我sb! 對沒錯,這個功能還有一個最大的問題就是沒有對上傳的檔案格式做限制,如果我這裡實現寫好了一個指令碼a.jsp程式碼如下

<%@page import="java.io.File"%>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%
    String root = request.getServletContext().getRealPath("");
    out.write("系統部署絕對路徑:"+root);
    File file = new File(root+"/index.jsp");
    file.delete();
%>

    上傳完畢,我們在訪問localhost:8080/load/upload/a.jsp,然後你在返回你就會發現一件恐怖的事情,這裡不限於做刪除操作,還可以自定義主頁,看你自己怎麼寫了! 所以說我們在做上傳的時候必須要對上傳的檔案格式做處理,在上傳的時候加入一句判斷語句(當然只判斷後綴,還可能存在一些問題,最好在加上判斷檔案前4個位元組一起判斷(不同檔案型別前4位元組不同),這樣就能很好的避免上述問題!

1.4 修復方案

    1)對檔案格式限制,只允許某些格式上傳

    2)對檔案格式進行校驗,前端跟伺服器都要進行校驗(前端校驗副檔名,伺服器校驗副檔名、Content_Type等)

    3)將上傳目錄防止到專案工程目錄之外,當做靜態資原始檔路徑,並且對檔案的許可權進行設定,禁止檔案下的執行許可權。

1.5 相關參考

相關推薦

web安全6-- 任意檔案漏洞

1.1 漏洞描述     上傳漏洞這個顧名思義,就是攻擊者通過上傳木馬檔案,直接得到WEBSHELL,危害等級超級高,現在的入侵中上傳漏洞也是常見的漏洞。     導致該漏洞的原因在於程式碼作者沒有對

fckeditor 2 6 4 任意檔案漏洞

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

phpcms v9.6.0任意檔案漏洞(CVE-2018-14399)

phpcms v9.6.0任意檔案上傳漏洞(CVE-2018-14399) 一、漏洞描述 PHPCMS 9.6.0版本中的libs/classes/attachment.class.php檔案存在漏洞,該漏洞源於PHPCMS程式在下載遠端/本地檔案時沒有對檔案的型別做正確的校驗。遠端攻擊者可以利用該漏洞上傳並

web安全6-- 檔案漏洞

1.1 漏洞描述     上傳漏洞這個顧名思義,就是攻擊者通過上傳木馬檔案,直接得到WEBSHELL,危害等級超級高,現在的入侵中上傳漏洞也是常見的漏洞。     導致該漏洞的原因在於程式碼作者沒有對訪客提交的資

PHP任意檔案漏洞CVE-2015-2348

安全研究人員今天釋出了一箇中危漏洞——PHP任意檔案上傳漏洞(CVE-2015-2348)。 在上傳檔案的時候只判斷檔名是合法的檔名就斷定這個檔案不是惡意檔案,這確實會導致其他安全問題。並且在這種情況下,在你自己的檔案中檢查漏洞很不現實,因為這個漏洞可以繞過你對檔名字尾、檔案型別(Content-Typ

weblogic系列漏洞整理————8、WebLogic 兩處任意檔案漏洞動態分析CVE-2018-2894

0x01 前言 CNCERT前幾天發公告稱發現Oracle公司出品的基於JavaEE結構的中介軟體WebLogic產品存在一個遠端上傳漏洞,並得到了廠商的確認,危害程度評分高達9.8分。鑑於廠商已進行了安全修復,筆者對該漏洞進行了一次分析。WebLogic管理端未授權的

CVE-2015-2348PHP任意檔案漏洞

漏洞編號:CVE-2015-2348漏洞影響版本:PHP 5.4.38~5.6.6漏洞成因:        通常情況下,PHP的開發者會對檔案使用者上傳的檔案的型別、檔案大小、檔名字尾等進行嚴格的檢查來限制惡意的PHP指令碼檔案的上傳漏洞的產生,但是攻擊者有時候可以結合語言的

Flask Web開發入門檔案

本章我們介紹Flask Web開發中涉及的檔案上傳模組 定義後臺接收處理邏輯 # http://flask.pocoo.org/docs/0.12/patterns/fileuploads/ @app.route('/upload', methods=[

Struts2的檔案和下載1檔案

在struts2中整合fileuoload功能,因為在匯入的jar包中包含了common-fileipload.jar檔案 在struts2中的interceptor 中有一個fileupload攔截器,他的主要功能就是完成檔案上傳。 注意事項 method=post

webAPI 檔案 404錯誤轉載 webAPI檔案檔案過大404錯誤的問題

webAPI檔案上傳時檔案過大404錯誤的問題  來源:https://www.cnblogs.com/dzhengyang/p/9149157.html 背景:最近公司有個需求,外網希望自動儲存資料到內網,內網有2臺伺服器可以相互訪問,其中一臺伺服器外網可以訪問,於是想在

HDFS—— HDFS 檔案的過程

一、客戶端傳送請求 客戶端執行上傳檔案的命令:hdfs dfs -put a.avi /movie。 二、DFSClient.java 建立 DistributedFileSystem 請求首先被 DFSClient.java 這個類獲取到,由該類建立 Distribu

複習之SpringBoot應用——SpringBoot檔案

檔案上傳可以說開發人員的基本技能 SpringBoot專案結構與ssm有很大區別,檔案上傳也有差異 頁面 <!DOCTYPE html> <html> <head> <title>檔案上傳示例</

Mac連線遠端伺服器Linux以及檔案、下載命令

在windows上,用xshell+xftp就可以很方便的操作遠端linux伺服器了。 而這2個軟體是沒有mac版的,所以在macOS下,是怎樣實現對遠端linux伺服器的操作的呢?   使用ssh連線遠端主機 ssh [email protected] 使用

基於Metronic的Bootstrap開發框架經驗總結5--Bootstrap檔案外掛File Input的使用

Bootstrap檔案上傳外掛File Input是一個不錯的檔案上傳控制元件,但是搜尋使用到的案例不多,使用的時候,也是一步一個腳印一樣摸著石頭過河,這個控制元件在介面呈現上,叫我之前使用過的Uploadify 好看一些,功能也強大些,本文主要基於我自己的框架程式碼案例,介紹其中檔案上傳外掛File Inp

從原理角度解析Android Java http 檔案

轉載請標明出處:http://blog.csdn.net/lmj623565791/article/details/23781773檔案上傳是我們專案中經常使用的功能,一般我們的伺服器可能都是web伺服器,當我們使用非瀏覽器客戶端上傳檔案時,比如手機(Android)等上傳,

17.[CVE-2017-12615]Tomcat任意檔案漏洞

【CVE-2017-12615】 Tomcat任意檔案上傳漏洞 首先先貼出wooyun上的一個案例:http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0107097.html 看到這個漏洞讓我想到了IIS6.0任意檔案上傳的漏洞,不過現在大多都用工具,比如I

FCKeditor connector php任意檔案漏洞

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

【程式碼審計】CLTPHP_v5.5.3 前臺任意檔案漏洞分析

  0x00 環境準備 CLTPHP官網:http://www.cltphp.com 網站原始碼版本:CLTPHP內容管理系統5.5.3版本 程式原始碼下載:https://gitee.com/chichu/cltphp 預設後臺地址: http://127.0.0.1/admin/log

WebLogic任意檔案漏洞(CVE-2018-2894)利用復現

環境搭建 參照: https://blog.csdn.net/qq_29647709/article/details/84892582 登入系統 環境啟動後,訪問http://192.1658.1.15:7001/console,即可看到後臺登入頁面。 登入後臺頁面,點選base_

Tomcat任意檔案漏洞CVE-2017-12615復現測試

今天爆出了一個tomcat7的任意檔案上傳漏洞,看了大牛們的分析後,我自己本地搭建環境複測。 漏洞影響的tomcat版本為tomcat7.0.0-7.0.81版本 我本地下載的是tomcat7.0.5