狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

【Web滲透】文件上傳漏洞

admin
2023年12月4日 15:30 本文熱度 786

一、文件上傳漏洞介紹

文件上傳:文件上傳是現代互聯網常見的功能,允許用戶上傳圖片、視頻、及其他類型文件,向用戶提供的功能越多,web受攻擊的風險就越大。

1、文件上傳漏洞
上傳文件時,如果未對上傳的文件進行嚴格的驗證和過濾,就容易造成文件上傳漏洞,上傳腳本文件(asp、aspx、php、jsp等)
注:asp,aspx對應iis解析;php對應apache解析;jsp對應java(tomcat)
惡意上傳行為可能導致網站甚至整個服務器被控制。惡意的腳本文件又被稱為Webshell。Webshell具有強大的功能。如查看服務器目錄、服務器中文件、執行系統命令等。

二、JS檢查繞過

1、檢測原理
調用JS的toLowerCase()函數,先將文件名轉換為小寫,然后通過substr獲取文件名后面最后一個點號后面的后綴(包括點號)進行判斷。
substr()返回字符串

//enctype=“multipart/form-data” 專門處理文件上傳的文件流

//return selectFile() 提供點擊提交按鈕,完成文件上傳

(一)JS繞過

1、網站源碼構造

(1)前端代碼

(2)后端代碼

2、網站訪問前端代碼,瀏覽器前端繞過文件上傳

注:這里網站的過濾僅為前端過濾,這里前端代碼只允許后綴名偽".jpg"的文件上傳。我們先去嘗試瀏覽器前端過濾。

如圖:通過F12打開開發者模塊,將onsubmit的值刪除,這里οnsubmit=""調用的函數即為我們編寫的判斷(過濾)方法。將此處值刪除后再次點擊上傳我們想要上傳的任意文件,觀察實驗結果并訪問上傳后的文件

注:這里我們發現通過修改前端頁面的值,成功上傳并解析了文件

3、使用burpsuit抓包,這里必須先上傳jpg格式的文件

注:這里我們可以先將我們想要上傳的php文件后綴直接改為jpg。也可使用合成圖片碼的方式,抓包后將后綴再改回我們需要上傳的文件后綴,放包后觀察結果。

注:這里將33.jpg文件后綴修改回.php后放包,文件即可成功上傳。

這里我們成功上傳并解析了我們想要上傳的文件,同理,我們可以繞過上傳任何我們想要上傳的任何文件。

注:圖片碼合成方法,代碼

1、將圖片與我們想要合成的代碼放入同一文件夾下,在文件夾下打開CMD命令框,輸入下面命令

copy 1.jpg/b +1.php/a 2.jpg 這里是將1.jpg與1.php文件合并,生成新圖片2.jpg

三、文件后綴繞過

1、檢測原理
通過函數pathinfo()獲取文件后綴,將后綴轉為小寫后判斷是不是php

注:pathinfo() 返回文件路徑的信息

2、繞過方法1
有些中間件允許解析其他文件后綴的,如在httpd.conf配置文件中,配置如下代碼,則能解析php、php3、phtml文件。所以上傳一個后綴名為php3、phphtml的文件即可繞過黑名單。

注:這里添加消息的含義是要能夠解析php3,phtml 這里是將添加的這兩種后綴按照php文件解析

3、繞過方法2(apache解析漏洞)
結合Apache文件解析機制,從右向左開始解析文件后綴,若后綴名不可識別,則繼續判斷直到遇到可解析的后綴為止,若全部不認識,則會暴露文件內容。
4、繞過方法3(windows特性:文件流繞過)
在程序開發部署的時候,沒有考慮到系統的特性會導致限制被繞過,利用windows特性。可以在后綴名中加"."或"::$DATA"繞過
注:這里我們給文件名直接加. windows本身特性會自動刪除,限制如此修改文件后綴,這里就需要使用burpsuit來進行修改

(二)文件后綴繞過(黑名單繞過)

1、源碼構造

(1)前端代碼

(2)后端代碼

2、網站訪問我們的前端代碼,進行文件上傳,觀察相關結果

注:這里我們嘗試上傳了.jpg .txt .php這里我們發現只有php的文件無法上傳,通過代碼我們也可以知道,此處是將php的文件加入了黑名單,不允許后綴為php的文件上傳。

3、畸形文件名上傳繞過
這里我們上傳一個后綴名為php3的文件,如下圖,我們發現上傳成功,但是訪問該文件時,php文件未解析。

注:我們此模塊的內容主要講文件解析及上傳,這里文件上傳已經成功,接下來要做的就是文件解析

4、根據課件筆記提示,修改httpd.conf配置文件

(1)打開phpstudy面板,點擊【設置】–>【配置文件】–>【httpd.conf】–>點擊apache的版本 打開文件

(2)在文件處使用Ctrl+F 進行查找,先去查找AddType 如圖:找到如下內容,在下面加入以下3條命令

AddType application/x-http-php .php
AddType application/x-http-php .php3
AddType application/x-http-php .phtml

注:這里添加消息的含義是要能夠解析php3,phtml 這里是將添加的這兩種后綴按照php文件解析

5、修改完配置文件后,重啟apache服務,重新訪問剛才上傳成功的.php3文件

這里我們再次訪問上傳的.php3可以發現php文件可以正常解析。

6、apache解析漏洞

修改文件名為.php.XX 這里XX可以是數字,也可以是字母,根據apache解析漏洞來進行上傳繞過

7、windows特性繞過
使用burpsuit抓包來對文件后綴進行修改 可以在后綴名中加"."或"::$DATA"繞過

繞過上傳成功后在文件根目錄注意觀察我們上傳文件的后綴名。

四、文件類型繞過

1、檢測原理
判斷$_FILES["file"]["type"]是不是圖片格式(image/gif、image/jpeg、image/pjpeg),不是則不允許上傳。
$_FILES["file"]["type"]的值是從請求數據包中Content-type中獲取的

注:我們這里的類型檢測,也是有相應的配置文件與之對應的,檢測文件類型的配置文件為mime.types 文件位置為: D:\phpstudy_pro\Extensions\Apache2.4.39\conf\mime.types

注:這里我們可以看到各種文件類型與對應關系

2、繞過方法1
通過抓取數據請求包,上傳php文件時,Content-Type值為application/octer-stream,上傳jpg的文件時Content-Type值為image/jpeg。可修改文件類型進行繞過。
3、繞過方法2
如果代碼使用getimagesize()函數獲取圖片的寬高等信息,如果上傳的不是圖片,那么則獲取不到信息。

在圖片文件腳本文件開頭補充圖片對應的頭部值,或在圖片后寫入腳本代碼(這里就是第一節課講過的圖片+代碼合成新圖片的知識模塊) (1)方法1 這里我們將文件頭部值寫入文件即可 注:下圖顯示的47 49 46……這些是16進制數,可以通過01編輯器進行編輯,我們通過nt++編輯時可直接在代碼前面編寫GIF89a,我們可以通過編碼轉換進行驗證。

(2)方法2 合成圖片這種方法前面已經講過,這里不再講。下面再將一種方式 直接將圖片使用記事本模式打開,在亂碼后面直接加入我們需要加入的PHP代碼。 注:這里我們修改完后文件后綴名依舊是.JPG  我們雖然修改了文件內容,但是上傳成功后.JPG文件依舊無法解析。這里我們要將添加完代碼的圖片后綴名改為.php后再次上傳,上傳后即可實現解析。但這里操作沒有方法1方便,操作時也可將合成圖片上傳后,在burpsuit中將后綴名改為php后放包,即可實現上傳繞過,也可實現解析。

(三)文件類型繞過(白名單繞過)

1、源碼構造

(1)前端代碼

(2)后端代碼

2、訪問源文件,上傳各種類型文件并觀察結果

這里我們發現,無論是上傳jpg/png…凡是圖片類型的文件均可上傳,php/txt…其他類型文件均不能上傳。通過代碼我們可以發現,這里是通過白名單的方式,只允許圖片類型的文件上傳,只有在白名單之內的文件才可以上傳,這里我們發現,單純通過瀏覽器,網頁前端,我們無法做任何繞過與修改。我們依舊需要使用burpsuit抓包的方式去進行繞過。

3、使用burpsuit抓包,修改文件類型進行上傳繞過

(1)將文件類型修改為Content-Type:image/jpeg放包后觀察是否文件上傳成功

注:這里我們發現文件不僅上傳成功,并且成功解析

(四)文件類型繞過(getimagesize繞過)

1、文件代碼構造

(1)網站前端代碼構造

(2)網站后端代碼構造

2、 在圖片文件腳本文件開頭補充圖片對應的頭部值,進行繞過

這里我們可以看到文件成功繞過并上傳,訪問文件,觀察結果

3、合成圖片碼,使用burpsuit抓包后,修改文件后綴名,放包觀察實驗結果

如圖:圖片亂碼后面就是我們寫入的代碼,根據圖片步驟,抓包后修改后綴,放包,觀察結果

可以看到放包后成功上傳,訪問該文件,查看能否成功解析執行

可以看到這里文件成功解析,圖片在文件中為亂碼形式,后面加入的php代碼phpinfo();成功解析

五、文件截斷繞過

1、檢測原理
由于00代表結束符,PHP會把00后面的所有字符刪除

截斷條件:PHP版本小于5.3.4、magic_quotes_gpc為OFF狀態 注:magic_quotes_gpc參數設置在phpstudy面板中【設置】–>【配置文件】–>【php.ini】–>【php5.2.17nts】打開文件,然后查找(Ctrl+F)magic_quotes_gpc參數設置為OFF 這里必須要下載一個版本低于5.3.4的php,然后將網站的php版本修改為低版本。

注:魔術引號:magic_quotes_gpc=On時,會把引號進行轉義。php版本升級后將magic_quotes_gpc函數丟棄,使用了新的轉義函數。

2、繞過方法

GET方法中加入%00截斷 POST方法中傳入00并解碼 注:我們上傳的文件進行了重命名,所以才會有我們的上傳00截斷

(五)00截斷(GET)

1、網站源碼構造

2、訪問網站,上傳相關文件,觀察總結

這里通過上傳我們發現,只有白名單內的文件后綴才能夠上傳,白名單外的文件(如php)均不可上傳。我們通過瀏覽器前端也無法再做什么其他可繞過的方式,我們通過抓包去嘗試繞過。

如圖:上圖標記的地方是GET方式的GET請求表單,在jieduan=./upload/后加上2.php后放包進行觀察

注:我們這里上傳了一個圖片碼 放包后我們可以看到文件上傳成功,但是我們上傳的文件名這里重疊了一個2.php(802020…)我們正常訪問這個文件依舊可以解析,解析后是一個圖片。我們接下來嘗試去00截斷

3、上傳圖片碼(內含代碼),通過burPOSTpsuit抓包使用00截斷進行繞過

如圖:在GET請求后加入2.php%00 后放包,觀察我們的頁面

如圖,根據回顯文件地址,去訪問該文件

這里我們發現回顯的文件404錯誤,找不到文件

4、去掉php后面的一長串字符串,僅訪問php文件

這里我們發現,我們成功上傳并解析了剛才上傳的圖片碼,這里就是00截斷的一種繞過方式(GET方式)

(五)00截斷(POST)

1、網站源碼構造

2、點擊訪問文件,上傳相應文件,并觀察總結

這里我們依舊發現只有白名單內的文件允許上傳,其他文件均不允許上傳

3、使用burpsuit抓取數據包,并觀察與GET方式的不同

注:這里我們發現POST請求與GET請求的不同之處。首先是URL處不帶請求,但是文本內容重點出現了./upload 這里便是我們的POST請求,POST請求需要

4、在Raw視圖下將"./upload" 修改為"./upload/2.php00"并在Hex視圖下修改0處編碼

如圖,找到上步修改文件名的位置,修改00處的編碼為00(30–>00)前面我們給php后面加的00是為了更快更準確的找到文件后綴名所在的位置。16進制修改為00后再去觀察Raw視圖

如圖:修改完成后我們輸入的00會轉換為兩個框型圖案

5、釋放修改后的數據包,驗證是否上傳并解析成功。

如圖,我們看到文件上傳成功,同上面操作過程,檢驗文件是否能夠正常解析

這里我們看到文件成功上傳并成功解析,00截斷成功

六、文件內容繞過

1、檢查原理
一些網站文件檢測邏輯是先允許上傳任意文件,然后檢查文件內容是否包含可執行腳本,如果包含則刪除。這里使用sleep()函數來模擬判斷是否含有腳本所需要的時間。
2、繞過方法
利用成功上傳到刪除的時間差,上傳一個.php文件,在未刪除之前立即訪問,則會自動生成一個新php文件,新文件不會被刪除。

(六)文件內容繞過

1、源碼構造

(1)前端代碼

(2)后端代碼

2、點擊訪問文件,上傳相應文件,并觀察總結

這里我們發現任意文件均可上傳,這里上傳時我們需要等待10s才可上傳成功,這里我們模擬文件上傳,上傳后再經過檢查將文件刪除的過程。

3、上傳下面代碼,點擊訪問該文件,即可成功生成shell.php
這里可以在10s等待,文件還未上傳成功時,點擊訪問,即可生成新文件shell.php

注:這里是模擬競爭上傳環境,我們一邊上傳,系統會自動刪除我們上傳的文件,這里就需要快速訪問上傳文件,只要訪問到剛才上傳的文件,即可實現我們想要寫入的文件生成。

點擊訪問上傳后文件,看是否會生成新的文件

如圖,這里的shell.php是我們訪問上一步上傳文件后生成的新文件,這里文件內容可以自行控制,可以寫入我們想要的任何文件。


該文章在 2023/12/5 11:08:09 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved