1. 程式人生 > >解析導致的檔案上傳漏洞

解析導致的檔案上傳漏洞

解析導致的上傳漏洞

1.IIS6.0站上的目錄路徑檢測解析繞過上傳漏洞

預設 遇到/就不解析後面的了
IIS6.0目錄路徑檢測解析,檔案的名字為“*.asp/xxx.jpg”,也同樣會被 IIS 當作 ASP檔案來解析並執行
首先我們請求 /aaa.asp/xxxx.jpg
從頭部查詢查詢 “.”號,獲得 .asp/xxxx.jpg
查詢”/”,如果有則記憶體截斷,所以/aaa.asp/xxxx.jpg會當做/aaa.asp進行解析

2.IIS6.0站上的解析缺陷繞過上傳漏洞

IIS6.0目錄路徑檢測解析,檔案的名字為“*.php;xxx.jpg”,也同樣會被 IIS 當作 PHP 檔案來解析並執行
首先我們請求 /aaa.php;xxx.jpg
從頭部查詢查詢 .號,獲得 .php;xxx.jpg
查詢;

,如果有則記憶體截斷,所以/aaa.php;xxx.jpg會當做/aaa.php進行解析

3.Apache解析缺陷繞過上傳漏洞

可以用於伺服器端副檔名檢測黑名單繞過。

原理

當瀏覽器將檔案提交到伺服器端的時候,伺服器端會根據設定的黑白名單對瀏覽器提交上來的副檔名進行檢測,如果上傳的副檔名不符合黑白名單的限制,則不予上傳,否則上傳成功。

繞過方法

將一句話木馬的檔名【evil.php】,改成【evil.php.xxx】(奇怪的不被解析的字尾名都行)。首先,伺服器驗證副檔名的時候,驗證的是【.xxx】,只要該副檔名符合伺服器端黑白名單規則,即可上傳。另外,當在瀏覽器端訪問該檔案時,Apache如果解析不了【.xxx】副檔名,會向前尋找可解析的副檔名,即【.php】

.7z字尾

進行繞過上傳,可以將一句話木馬檔案 yijuhua.php檔名加上字尾名為.7z。

7z格式是一種壓縮檔案的格式,但Apache不識別7z字尾,Apache解析檔案時,如果字尾名不認識,則會繼續向前解析,會解析到php,這就是Apache的解析漏洞。

防禦建議

1.普通使用者與系統管理員的許可權要有嚴格的區分
2.強迫使用引數化語句
3.加強對使用者輸入的驗證
4.多使用資料庫自帶的安全引數
5.使用專業的漏洞掃描工具來尋找可能被攻擊的點

4.htaccess檔案上傳解析漏洞 (重寫解析規則繞過)

.htaccess是apache伺服器中的一個配置檔案,不是上傳的檔案的黑名單之內 ,所以.htaccess檔案是可以上傳成功。
上傳覆蓋.htaccess檔案,重寫解析規則,將上傳的帶有指令碼馬的圖片以指令碼方式解析。
編寫.htaccess檔案。
開啟記事本,將如下程式碼寫入文字中:

AddType  application/x-httpd-php    .jpg

然後點選檔案選中另存為,編寫檔名為.htaccess,選擇儲存型別為所有檔案。
.htaccess檔案裡的程式碼的含義 是 將上傳的檔案字尾名為.jpg格式的檔案以 php格式來解析檔案。
將.htaccess檔案進行上傳,上傳成功。

參考資料: