web上存漏洞及原理分析、防範方法

來源:互聯網
上載者:User

網站提供上存功能,是很多網站經常會有功能,商城,論壇還有常見一些網盤網站。常見互連網上面,我們也是經常聽說,某某網站出現上存漏洞,某某開源項目有 上存漏洞。 從互連網開始出現動態程式,上存漏洞像幽靈一樣,頻繁的出現在各種系統中。為什麼,一個上存漏洞會這麼頻繁出現呢。而且,有些系統反覆修補,多次還沒有修 補成功!其實主要問題,還是出現在上存原理上面。我們先看看,上存過程。
網站上存過程分析

複製代碼 代碼如下:
<?php
header("Content-type: text/html; charset=utf-8");
if($_FILES)
{
echo '<pre>';
var_dump($_FILES);
echo '</pre>';
}
?>
<form action="" enctype="multipart/form-data" method="POST">
<input type="file" name="txt" size="50">
<input name="Submit" type="submit" value="提交" >
</form>


以上是個簡單測試例子,我們看看

我們來分析下:
name來自 上存時候選擇檔案名稱
type 是檔案類型, 這個類型那裡來的呢?呵呵,這裡非常關鍵的。 很多時候,很多同人會認為,這個是伺服器自動判斷產生的。 如果是這樣想,覺得也有可能。 php 封裝了上存,它內建類庫好像可以的。 但是,反過來想想,你隨便選擇個什麼格式檔案,都會有格式類型。這樣一想,我們推斷這個值,可能也來自使用者輸入的。 我們來抓包看看我們類型。

type值 也來自,使用者輸入值了。
size來自程式計算上存檔案大小,這個是自動計算的。 相比我們都清楚的。

你說這麼多有啥樣呢?
想 必有朋友開始問了,我上面分析上存檔案格式 ,跟開發出現漏洞有什麼關聯呢。 其實,我們想想,上面說的,一個檔案名稱name屬性,以及檔案類型type屬性。 在我們上存檔案,後端處理時候,會經常用到的。 作為開發人員,在使用這2個變數,一定要繼續執行“一切輸入代碼是有害的”原則。你在使用時候,要把它當作,跟其它get,post 擷取變數一樣處理。 要檢測,過濾一切輸入變數。
我們經常做功能是,限定使用者輸入必須是某種格式檔案,然後儲存為該格式。分析到這裡,下面有很多需要繼續分析地方,今天先提出大綱。接下來會分析這樣常見3類上存漏洞。
1.使用使用者檔案名稱,組建檔案,特殊字元過濾不嚴格,導致檔案產生出現漏洞
2.移動檔案目錄時候,由於採用使用者傳入的檔案名稱拼接,產生到錯誤目錄
3.相信使用者輸入type 類型,直接將使用者檔案名稱儲存為檔案

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。