目錄
概述
漏洞成因及危害
1.本地驗證(前端驗證)
2.後端驗證及繞過
2.1 後綴名
3.文件類型驗證
3.1 文件頭檢測:文件頭內容資訊(如gif89a)
Content-Type用於定義網路檔案的類型和網頁的編碼,用來告訴檔案接收者將以什麼形式、什麼編碼讀取這個檔案。不同的檔案都會對應的不同的Content-Type,例如jpg檔案的Content-Type為image/jpeg,php檔案的Content-Type為application/octet-stream。 Content-Type是在封包的請求包頭中,開發者會通Content-Type的類型判斷檔案是否允許上傳。
4.1 邏輯安全:條件競爭(相當於系統佔用)
定義:競爭條件是指多個執行緒在沒有進行鎖定操作或同步操作同時存取同一個共享程式碼、變數、檔案等,運行的結果依賴不同執行緒存取資料的順序。先將檔案上傳到伺服器,伺服器依照規則對圖片選擇保存與刪除,漏洞點在於檔案在儲存到伺服器之前並沒有進行合法性的檢查,雖然儲存後進行了檔案的檢查,但是透過競爭條件漏洞,透過上傳有寫入檔案功能的木馬,在刪除木馬之前造訪已經上傳的木馬,就可以寫入新的木馬。
繞過:透過新增/.後綴讓伺服器辨識檔案為資料夾形式,達到上傳的目的,如-x.php/.
腳本函數漏洞-cve
6.1 IIS 6.0 解析漏洞
解析漏洞快速判斷,/.php看是否有亂碼,有則存在,無則不存在。
正常檔案名稱:image/aa.jpg。
正常檔案名稱:image.jpg。
要繞過WAF,我們需要了解哪些參數可以修改,如:
利用WAF偵測上限,增加大量垃圾數據,讓其匹配不到,類似溢位漏洞,一般可在上傳參數後面加入乾擾數據,垃圾數據和參數之間要記得新增;,否則封包會報錯。
利用程式開發漏洞,對資料包中上傳參數中的符號進行替換,新增、刪除,達到上傳目的。如
7.3資料截斷(
首頁 科技週邊 人工智慧 淺談權限取得方法之檔上傳

淺談權限取得方法之檔上傳

Apr 09, 2023 am 09:11 AM
文件上傳 權限 網站

概述

檔案上傳漏洞是發生在有上傳功能的應用程式中,如果應用程式對使用者上傳檔案沒有控製或有缺陷,攻擊者可以利用應用程式上傳功能的缺陷,上傳木馬、病毒等有危害的文件到伺服器上面,控制伺服器。

漏洞成因及危害

檔案上傳漏洞產生的主要原因是:應用程式中存在上傳功能,但是上傳的檔案沒有經過嚴格的合法性檢驗或檢驗函數有缺陷,導致可以上傳木馬文件到伺服器。文件上傳漏洞危害極大因為可以直接上傳惡意程式碼到伺服器上,可能會造成伺服器的網頁篡改、網站被掛馬、伺服器被遠端控制、被安裝後門等嚴重的後果。

下面我們就檔案上傳的幾種驗證及繞過方法:

1.本地驗證(前端驗證)

前端JS過濾繞過上傳漏洞是因為應用程式是在前端透過JS程式碼進行的驗證,而不是在程式後端進行的驗證,這樣就可以透過修改前端JS程式碼的方式進行繞過上傳過濾,上傳木馬。

那麼如何判斷是否為前端驗證呢?我個人覺得我們可以看在進行上傳抓包的時候是否能到資料包,是否有資料流過,或者可以看上傳圖片是否頁面會顯示上傳的圖片地址等。

繞過:將過濾程式碼刪除,修改或停用Javascript。

2.後端驗證及繞過

文件上傳常見驗證:後綴名(直接驗證),文件,文件頭(間接驗證)。

2.1 後綴名

2.1.1 黑名單(明確不允許上傳的腳本格式後綴)

檔案名稱過濾繞過漏洞主要是因為透過黑名單的方式判斷了文件上傳的類型,而且並沒有完整的過濾,導致攻擊者透過上傳黑名單類型以外的文件。

黑名單判斷方法:上傳文件,系統提示不允許上傳xxx格式檔案。

繞過:使用其他格式(php5,Phtml,php3)或檔案大小寫,同時也可以加入一些幹擾符號實作繞過。

2.1.2 .htaccess(偽靜態協定)-重寫解析(Apache才有並且開啟偽靜態模組)

.htaccess檔案上傳是利用.htaccess檔案可以對Web伺服器設定的功能,實作對jpg、png等後綴的檔案當做PHP檔案解析的過程。

.htaccess檔案(分散式設定檔)提供了一種基於每個目錄進行設定變更的方法,包含一個或多個設定指令的檔案放在特定的文件目錄中,檔案中的指令適用於該目錄及其所有子目錄。 .htaccess是Web伺服器的一個設定文件,可以透過.htaccess檔案實現Web伺服器中的定義檔的解析方式、重定向等設定。

繞過方法:先上傳1.htaccess檔。 2.再上傳圖片馬。

2.1.3 空格繞過

繞過方法:封包中檔案後綴名後加上一個空格實作繞過。

2.1.4 .繞過

繞過方法:跟空格繞過方法類似,封包中檔案後綴名後加一個.實作繞過。

2.1.5 ::$data繞過

這是windows特有的一種協議,在window的時候如果檔案名稱"::$DATA"會把::$DATA之後的資料當成檔案流處理,不會偵測後綴名,且保持::$DATA之前的檔案名,他的目的就是不檢查後綴名。

2.1.6 循環過濾

繞過:程式碼將字串裡的php替換為空。

如:a.pphphp 會變成->a.

2.1.7 白名單:明確可以上傳的格式後綴(更安全)

#

3.文件類型驗證

3.1 文件頭檢測:文件頭內容資訊(如gif89a)

不同的文件都有特定的文件頭格式,開發者透過檢查上傳文件的文件頭檢測文件類型,但是這種檢測方式同樣可以被繞過,只要在木馬文件的頭部添加對應的文件頭,這樣既可以繞過檢測又不影響木馬文件的正常運行。

常見的檔案頭如下:

JPEG  0xFFD8FF

PNG0   x89504E470D0A1A0A

GIF    47 49 4638 39 61(#GIF    47 49 4638 39 61(GIF8#過方法:

更改頭部資訊達到欺騙,如在木馬的頭檔中添加圖片檔案的檔案頭即可繞過偵測。
  • GIF89a

?>

製作圖片馬
  • 直接在圖片中插入一句話木馬,進行上傳。 ———利用文件包含原理。

使用cmd指令將一張正常圖片 1.jpg 與一個包含一句話木馬的 a.txt文件,合成一個新的test.php木馬文件。

cmd 指令:copy 1.jpg/b a.txt test.php。

3.2  Content-Type偵測

Content-Type用於定義網路檔案的類型和網頁的編碼,用來告訴檔案接收者將以什麼形式、什麼編碼讀取這個檔案。不同的檔案都會對應的不同的Content-Type,例如jpg檔案的Content-Type為image/jpeg,php檔案的Content-Type為application/octet-stream。 Content-Type是在封包的請求包頭中,開發者會通Content-Type的類型判斷檔案是否允許上傳。

繞過:Content-Type的類型可以透過抓包來竄改,這樣就可以透過抓包修改封包的Content-Type來繞過Content-Type判斷。

MIME:可以透過判斷類型猜測檔案後綴名,利用抓包工具將Content-Type進行篡改,如改為image/pjpeg、image/jpeg、image/gif、image/png四個中的一個即可繞過過濾。

4. 內容及其他

4.1 邏輯安全:條件競爭(相當於系統佔用)

定義:競爭條件是指多個執行緒在沒有進行鎖定操作或同步操作同時存取同一個共享程式碼、變數、檔案等,運行的結果依賴不同執行緒存取資料的順序。先將檔案上傳到伺服器,伺服器依照規則對圖片選擇保存與刪除,漏洞點在於檔案在儲存到伺服器之前並沒有進行合法性的檢查,雖然儲存後進行了檔案的檢查,但是透過競爭條件漏洞,透過上傳有寫入檔案功能的木馬,在刪除木馬之前造訪已經上傳的木馬,就可以寫入新的木馬。

繞過:將文件上傳到伺服器後,我們就不斷進行文件路徑訪問,由於條件競爭,就會達到上傳Webshel​​l的目的,漏洞利用就是發送請求通過不斷上傳內容,這樣的訪問會產生新的木馬文件,然後再發送另一個請求不斷存取此文件,如果競爭條件漏洞利用成功就會產生新的木馬。

4.2 目錄命名 

繞過:透過新增/.後綴讓伺服器辨識檔案為資料夾形式,達到上傳的目的,如-x.php/.

5.其他漏洞

腳本函數漏洞-cve

CVE-2017-12615 

CVE-2015-5254

CVE-2019-2618

......

這些漏洞網路上都有利用教程,有興趣的師傅可以去查閱一下資料。

6.中間件解析漏洞

6.1 IIS 6.0 解析漏洞

解析漏洞快速判斷,/.php看是否有亂碼,有則存在,無則不存在。

6.1.1 以資料夾執行

正常檔案名稱:image/aa.jpg。

繞過:image.asp/aa.jpg  aa.jpg就會被當作asp解析。

6.1.2 以檔案執行

正常檔案名稱:image.jpg。

繞過:image.asp;.jpg或xxx.asp;xxx.jpg 此檔案會當作asp執行。

asp可以換做php 如果換了php,那麼就可以當作php執行。

7.WAF繞過

要繞過WAF,我們需要了解哪些參數可以修改,如:

Content-Disposition:一般可修改。
  • name:表單參數值,不能修改。
  • filename:檔名,可以修改。
  • Content-Type(檔案自帶類型):檔案MIME,視情況變更。
  • waf繞過的核心就是在可以修改的參數名稱後不斷修改測試,嘗試繞過。
  • 常見繞過方法:

7.1 資料溢出(垃圾資料填充)

利用WAF偵測上限,增加大量垃圾數據,讓其匹配不到,類似溢位漏洞,一般可在上傳參數後面加入乾擾數據,垃圾數據和參數之間要記得新增;,否則封包會報錯。

7.2 符號變異('";)

利用程式開發漏洞,對資料包中上傳參數中的符號進行替換,新增、刪除,達到上傳目的。如

如x.jpg;.php 分號代表一個資料的結束。

7.3資料截斷(

以上是淺談權限取得方法之檔上傳的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1426
52
Laravel 教程
1328
25
PHP教程
1273
29
C# 教程
1253
24
一鍵開啟root權限(快速取得root權限) 一鍵開啟root權限(快速取得root權限) Jun 02, 2024 pm 05:32 PM

可以讓使用者對系統進行更深入的操作和定制,root權限是一種管理員權限,在Android系統中。取得root權限通常需要一系列繁瑣的步驟,對於一般使用者來說可能不太友善、然而。透過一鍵開啟root權限,本文將介紹一種簡單而有效的方法,幫助使用者輕鬆取得系統權限。了解root權限的重要性及風險擁有更大的自由度,root權限可以讓使用者完全控製手機系統。加強安全控制等,客製化主題、使用者可刪除預先安裝應用程式。例如誤刪系統檔案導致系統崩潰,過度使用root權限也有風險、不慎安裝惡意軟體等,然而。在使用root權限前

有什麼學c語言的網站 有什麼學c語言的網站 Jan 30, 2024 pm 02:38 PM

學c語言的網站:1、C語言中文網;2、菜鳥教學;3、C語言論壇;4、C語言帝國;5、腳本之家;6、天極網;7、紅黑聯盟;8、51自學網;9、力扣;10、C Programming。詳細介紹:1、C語言中文網,這是一個專門為初學者提供C語言學習資料的網站,內容豐富,包括基礎語法、指針、數組、函數、結構體等多個模組;2、菜鳥教程,這是一個綜合性的程式設計學習網站等等。

qq空間如何設定權限訪問 qq空間如何設定權限訪問 Feb 23, 2024 pm 02:22 PM

qq空間如何設定權限存取?在QQ空間中是可以設定權限訪問,但是多數的小夥伴不知道QQ空間如何設定權限存取的功能,接下來就是小編為使用者帶來的qq空間設定權限存取方法圖文教程,有興趣的用戶快來一起看看吧! QQ使用教學qq空間如何設定權限存取1、先開啟QQ應用,主頁點選左上角【頭像】點選;2、然後左側展開個人資訊專區,點選左下角【設定】功能;3、進入設定頁面滑動,找到其中的【隱私】選項;4、接下來在隱私的介面,其中的【權限設定】服務;5、之後挑戰到最新頁面選擇【空間動態】;6、再次在QQ空間設置

Discuz論壇權限管理:閱讀權限設定指南 Discuz論壇權限管理:閱讀權限設定指南 Mar 10, 2024 pm 05:33 PM

Discuz論壇權限管理:閱讀權限設定指南在Discuz論壇管理中,權限設定是至關重要的一環。其中,閱讀權限的設定尤其重要,它決定了不同使用者在論壇中能夠看到的內容範圍。本文將詳細介紹Discuz論壇的閱讀權限設置,以及如何針對不同的需求進行靈活的配置。一、閱讀權限基礎概念在Discuz論壇中,閱讀權限主要有以下幾個概念需要了解:預設閱讀權限:新使用者註冊後預設

如何在 Golang 中使用 gRPC 實作檔案上傳? 如何在 Golang 中使用 gRPC 實作檔案上傳? Jun 03, 2024 pm 04:54 PM

如何使用gRPC實作檔案上傳?建立配套服務定義,包括請求和回應訊息。在客戶端,開啟要上傳的檔案並將其分成區塊,然後透過gRPC串流傳輸到服務端。在服務端,接收文件區塊並將其儲存到文件中。服務端在文件上傳完成後發送回應,指示上傳是否成功。

用Golang函數簡化檔案上傳處理 用Golang函數簡化檔案上傳處理 May 02, 2024 pm 06:45 PM

答案:是,Golang提供的函數可以簡化檔案上傳處理。詳情:MultipartFile類型提供對文件元資料和內容的存取。 FormFile函數從表單請求中取得特定檔案。 ParseForm和ParseMultipartForm函數用於解析表單資料和多部分錶單資料。使用這些函數簡化了文件處理流程,讓開發者專注於業務邏輯。

如何在 Golang 中實現拖放檔案上傳? 如何在 Golang 中實現拖放檔案上傳? Jun 05, 2024 pm 12:48 PM

如何在Golang中實現拖放檔案上傳?啟用中間件;處理檔案上傳請求;建立拖曳區域的HTML程式碼;新增處理拖曳事件的JavaScript程式碼。

trustedinstaller權限怎麼獲得「推薦取得TrustedInstaller權限操作步驟」 trustedinstaller權限怎麼獲得「推薦取得TrustedInstaller權限操作步驟」 Feb 06, 2024 pm 05:48 PM

這篇文章將帶你了解TI的本質是什麼,進一步探索如何在powershell和NtObjectManager模組的幫助下取得TI權限,以便在作業系統中完成任何你想要的操作。如果你曾經管理過Windows系統,那麼你應該熟悉trustedInstaller(TI)群組的概念。 TI群組在系統檔案和登錄的操作上具有重要的權限。舉個例子,你可以查看System32資料夾下檔案的屬性,在安全性選項中,TI群組和檔案擁有者俱有刪除和修改檔案的權限,甚至管理員也無法直接修改安全選項。因此,對於系統文件和註冊表的操作,需

See all articles