【HW系列】—web常規漏洞(文件上傳漏洞)

文章目錄

    • 一、簡介
    • 二、危害
    • 三、文件檢測方式分類
    • 四、判斷文件檢測方式
    • 五、文件上傳繞過技術
    • 六、漏洞防御措施

一、簡介

文件上傳漏洞是指Web應用程序在處理用戶上傳文件時,未對文件類型、內容、路徑等進行嚴格校驗和限制,導致攻擊者可上傳惡意文件(如WebShell、木馬、病毒等)到服務器,進而控制服務器或執行非法操作。其核心原理在于服務器對上傳文件的處理邏輯存在缺陷,例如未限制可執行文件的存儲路徑、未驗證文件真實類型等。根據統計,約30%的Web應用存在此類漏洞。

二、危害

遠程代碼執行:上傳WebShell(如PHP、ASP腳本)可直接執行系統命令,控制服務器。

數據泄露:攻擊者可訪問敏感文件(如數據庫配置、用戶信息)。

服務器癱瘓:通過上傳大文件或惡意程序發起DDoS攻擊。

權限提升:結合路徑遍歷漏洞覆蓋系統關鍵文件,或篡改網站內容。

供應鏈攻擊:上傳惡意圖片或跨域策略文件(如crossdomain.xml),控制客戶端行為。

三、文件檢測方式分類

在這里插入圖片描述

文件上傳檢測主要分為以下五類:
客戶端檢測:通過JavaScript校驗文件擴展名和大小,易被禁用或繞過。

服務端MIME檢測:驗證HTTP請求的Content-Type字段(如image/jpeg),但可偽造。

擴展名檢測:黑名單或白名單校驗文件后綴,易被大小寫、雙擴展名(如.php.jpg)繞過。

文件內容檢測:檢查文件頭(Magic Number)或二次渲染圖片破壞惡意代碼。

目錄路徑檢測:限制上傳路徑合法性,但可能被路徑遍歷(如…/)突破。

四、判斷文件檢測方式

客戶端檢測:
上傳非法文件時,未發送請求即彈出錯誤提示(如“僅允許.jpg文件”)。

服務端檢測:

MIME檢測:修改Content-Type為合法類型(如image/png)可繞過。

擴展名檢測:嘗試上傳非常見后綴(如.phtml、.php5)測試黑名單覆蓋范圍。

內容檢測:添加合法文件頭(如GIF89a)或嵌入惡意代碼于圖片元數據(Exif)。

五、文件上傳繞過技術

在這里插入圖片描述

擴展名繞過:

  • 雙擴展名:.php.jpg(Apache解析漏洞)。

  • 空字節截斷:shell.php%00.jpg(PHP版本<5.3.4)。

  • 大小寫混淆:.pHp、.AsP。
    內容欺騙:

  • 圖片馬:通過copy /b 1.jpg+shell.php 2.jpg合并文件。

  • Exif元數據注入:使用工具(如ExifTool)插入惡意代碼。
    解析漏洞利用:

  • Apache解析規則:從右向左解析擴展名(如1.php.xxx)。

  • IIS目錄路徑解析:/upload/shell.asp/1.jpg觸發ASP解析。
    條件競爭:快速上傳并訪問臨時文件,繞過刪除邏輯。

六、漏洞防御措施

嚴格校驗機制:

  • 白名單驗證:僅允許特定擴展名(如.jpg、.png)和MIME類型。

  • 文件內容檢測:使用finfo庫驗證文件頭,二次渲染圖片破壞隱藏代碼。
    存儲安全:

  • 隨機重命名:使用UUID或哈希值生成文件名,避免直接訪問。

  • 非Web目錄存儲:上傳文件存放于不可通過URL直接訪問的路徑。

  • 權限控制:目錄設置為不可執行(如chmod -x uploads/)。
    服務器加固:

  • 禁用危險函數:如PHP的system()、exec()。

  • 配置安全:Apache禁用.htaccess,Nginx限制解析特定擴展名。
    其他措施:

  • 日志監控:記錄上傳行為,實時檢測異常(如高頻上傳)。

  • CDN分發:通過CDN提供靜態文件,隔離執行風險。

總結
文件上傳漏洞的防御需從輸入驗證、存儲隔離、服務器配置多層面綜合防護。開發中應優先采用白名單機制,避免依賴客戶端檢測,并結合定期滲透測試修復潛在風險。攻擊手法與防御技術持續演進,需緊跟安全社區動態更新防護策略。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/82395.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/82395.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/82395.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何設計ES的冷熱數據分離架構?Elasticsearch 集群如何實現高可用?如何避免腦裂問題?如果出現腦裂如何恢復?

以下為Elasticsearch架構設計與高可用方案詳細說明&#xff1a; 冷熱架構 一、冷熱數據分離架構設計&#xff08;文字描述模擬架構圖&#xff09; [Hot Layer] │ ├─ SSD節點組&#xff08;3節點&#xff09; │ ├─ 角色&#xff1a;ingest/data/hot │ ├─ 存…

Trivy 鏡像漏洞掃描:從零入門到實戰指南

&#x1f525;「炎碼工坊」技術彈藥已裝填&#xff01; 點擊關注 → 解鎖工業級干貨【工具實測|項目避坑|源碼燃燒指南】 ——手把手帶你掌握容器安全核心工具 一、安裝配置&#xff1a;三步完成 Trivy 部署 Trivy 是由 Aqua Security 開發的開源容器安全工具&#xff0c;支持…

SQL基礎概念以及SQL的執行方式

1. SQL入門 1.1. SQL語言功能 可以把 SQL 語言按照功能劃分成以下的 4 個部分&#xff1a; DDL&#xff0c;英文叫做 Data Definition Language&#xff0c;也就是數據定義語言&#xff0c;它用來定義我們的數據庫對象&#xff0c;包括數據庫、數據表和列。通過使用 DDL&…

Rust 1.0 發布十周年,夢想再度揚帆起航!

目錄 引言&#xff1a;發布十周年&#xff0c;鋒芒露今朝 一、Rust的誕生&#xff1a;源于安全的初心 二、Rust 1.0&#xff1a;十年耕耘&#xff0c;碩果累累 三、核心利器&#xff1a;安全、并發與性能的十年錘煉 四、生態與應用&#xff1a;十年拓展&#xff0c;遍地開…

x86 與 ARM 匯編深度對比:聚焦 x86 匯編的獨特魅力

一、引言 匯編語言是硬件與軟件的橋梁&#xff0c;x86 和 ARM 作為兩大主流架構&#xff0c;其匯編語言在設計理念、指令集、編程風格上差異顯著。本文以 x86 匯編為核心&#xff0c;結合與 ARM 的對比&#xff0c;解析 x86 匯編的技術細節與應用場景&#xff0c;助力開發者深…

入駐面包多了

前言 入駐面包多了&#xff0c;其實已經開通面包多賬號老久了&#xff0c;一直沒有認證&#xff0c;因為沒什么拿得出手的作品。 后邊會努力沉淀&#xff0c;希望能出一些作品&#xff0c;給大家帶來一些幫助&#xff0c;然后能賺到一些些奶茶錢。 一個小工具 上架了一個Win…

Python----目標檢測(MS COCO數據集)

一、MS COCO數據集 COCO 是一個大規模的對象檢測、分割和圖像描述數據集。COCO有幾個 特點&#xff1a; Object segmentation&#xff1a;目標級的分割&#xff08;實例分割&#xff09; Recognition in context&#xff1a;上下文中的識別&#xff08;圖像情景識別&#xff0…

【Spring AI集成實戰】基于NVIDIA LLM API構建智能聊天應用:從配置到函數調用全解析

【Spring AI集成實戰】基于NVIDIA LLM API構建智能聊天應用&#xff1a;從配置到函數調用全解析 前言 在人工智能應用開發領域&#xff0c;大語言模型&#xff08;LLM&#xff09;的集成能力至關重要。NVIDIA作為全球領先的GPU廠商&#xff0c;其LLM API提供了對Meta Llama-3.…

通用的管理賬號設置設計(一)

背景 首先說明一下需求背景&#xff1a; 在整個角色分類中分為管理員和用戶&#xff0c;用戶可以分為很多級別&#xff0c;比如用戶處于哪個組&#xff08;group&#xff09;&#xff0c;用戶處于哪個site&#xff08;城市&#xff09;。管理員可以&#xff1a; 2.1 鎖定整個…

第5章 軟件工程基礎知識

5.2 軟件過程模型 掌握常見軟件開發模型的基本概念。 瀑布模型&#xff1a;各階段的固定順序&#xff0c;如同瀑布流水。適用于需求明確&#xff0c;且很少發生較大變化的項目。 演化模型&#xff1a; 原型模型&#xff1a;適用于用戶需求不清&#xff0c;需求經常變化的情況…

深淺拷貝?

一、定義&#xff1a; 淺拷貝&#xff1a;只復制對象的第一層屬性&#xff0c;若第一層屬性是引用類型&#xff08;如對象、數組&#xff09;&#xff0c;則復制其內存地址&#xff0c;修改拷貝后的嵌套對象會影響原對象。 深拷貝&#xff1a;遞歸復制對象的所有層級&#xf…

MMA: Multi-Modal Adapter for Vision-Language Models論文解讀

abstract 預訓練視覺語言模型&#xff08;VLMs&#xff09;已成為各種下游任務中遷移學習的優秀基礎模型。然而&#xff0c;針對少樣本泛化任務對VLMs進行微調時&#xff0c;面臨著“判別性—泛化性”困境&#xff0c;即需要保留通用知識&#xff0c;同時對任務特定知識進行微…

螞蟻集團 CTO 何征宇:AGI時代,海量數據帶來的質變|OceanBase 開發者大會實錄

5 月 17 日&#xff0c;“第三屆 OceanBase 開發者大會”在廣州舉辦&#xff0c;會中&#xff0c;螞蟻集團 CTO 何征宇&#xff0c;進行了題為《AGI時代&#xff0c;海量數據帶來的質變》的主題分享。他深度剖析了AI 時代下&#xff0c;數據應用范式的變革&#xff0c;以及生成…

python網絡爬蟲的基本使用

各位帥哥美女點點關注&#xff0c;有關注才有動力啊 網絡爬蟲 引言 我們平時都說Python爬蟲&#xff0c;其實這里可能有個誤解&#xff0c;爬蟲并不是Python獨有的&#xff0c;可以做爬蟲的語言有很多例如&#xff1a;PHP、JAVA、C#、C、Python。 為什么Python的爬蟲技術會…

網頁模板素材網站 web前端網頁制作模板

在當今數字化時代&#xff0c;Web 前端網頁制作對于企業和個人來說至關重要。無論是企業官網、個人博客還是電商網站&#xff0c;一個美觀、功能性強且易于維護的網頁設計能夠有效提升用戶體驗和品牌形象。然而&#xff0c;從零開始設計一個網頁往往需要耗費大量的時間和精力&a…

ROS系列(一):ROS入門指南 —— 核心解析與版本演進

引言 機器人操作系統&#xff08;ROS&#xff09;的誕生&#xff0c;不僅是一場技術革命&#xff0c;更是一張重新定義機器人開發范式的藍圖。從實驗室的原型驗證到工業場景的規模化落地&#xff0c;從單機智能到群體協作&#xff0c;ROS以開源、模塊化和生態驅動的特性&#…

將 Docker 鏡像推送到 GitLab Container Registry 的完整步驟

一、前提準備 GitLab 項目: 在 GitLab 上擁有一個項目&#xff0c;例如 your-group/your-project-name。重要: 確保項目路徑&#xff08;尤其是項目名稱部分&#xff09;全部使用小寫字母。例如&#xff0c;如果初始是 Your-Project&#xff0c;請在項目設置中將其路徑修改為 y…

Java-HashMap基礎與擴展學習總結

?面試官?&#xff1a; “HashMap 是 Java 中最常用的數據結構之一&#xff0c;你能說說它的底層實現嗎&#xff1f;比如哈希沖突是怎么解決的&#xff1f;” ?你?&#xff08;結合源碼與優化場景&#xff09;&#xff1a; “好的&#xff0c;HashMap 底層是數組鏈表/紅黑…

嵌入式學習之系統編程(五)進程(2)

一、進程的退出 &#xff08;一&#xff09;僵尸進程與孤兒進程 &#xff08;二&#xff09;相關函數 1、exit函數 2、_exit函數 3、atexit函數 二、進程空間的回收&#xff08;相關函數&#xff09; 1、wait函數 2、waitpid函數 3、練習 4、exec族 5、system函數 一…

AI時代新詞-Transformer架構:開啟AI新時代的關鍵技術

一、什么是Transformer架構&#xff1f; Transformer架構 是一種基于自注意力機制&#xff08;Self-Attention Mechanism&#xff09;的深度學習模型架構&#xff0c;最初由Vaswani等人在2017年的論文《Attention Is All You Need》中提出。它主要用于處理序列數據&#xff08…