探討:web上存漏洞及原理分析、防范方法
網(wǎng)站上存過(guò)程分析
<?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>
以上是個(gè)簡(jiǎn)單測(cè)試?yán)?,我們看?BR>

我們來(lái)分析下:
name來(lái)自 上存時(shí)候選擇文件名稱
type 是文件類型, 這個(gè)類型那里來(lái)的呢?呵呵,這里非常關(guān)鍵的。 很多時(shí)候,很多同人會(huì)認(rèn)為,這個(gè)是服務(wù)器自動(dòng)判斷生成的。 如果是這樣想,覺得也有可能。 php 封裝了上存,它自帶類庫(kù)好像可以的。 但是,反過(guò)來(lái)想想,你隨便選擇個(gè)什么格式文件,都會(huì)有格式類型。這樣一想,我們推斷這個(gè)值,可能也來(lái)自用戶輸入的。 我們來(lái)抓包看看我們類型。
type值 也來(lái)自,用戶輸入值了。
size來(lái)自程序計(jì)算上存文件大小,這個(gè)是自動(dòng)計(jì)算的。 相比我們都清楚的。
你說(shuō)這么多有啥樣呢?
想必有朋友開始問(wèn)了,我上面分析上存文件格式 ,跟開發(fā)出現(xiàn)漏洞有什么關(guān)聯(lián)呢。 其實(shí),我們想想,上面說(shuō)的,一個(gè)文件名稱name屬性,以及文件類型type屬性。 在我們上存文件,后端處理時(shí)候,會(huì)經(jīng)常用到的。 作為開發(fā)者,在使用這2個(gè)變量,一定要繼續(xù)執(zhí)行“一切輸入代碼是有害的”原則。你在使用時(shí)候,要把它當(dāng)作,跟其它get,post 獲取變量一樣處理。 要檢測(cè),過(guò)濾一切輸入變量。
我們經(jīng)常做功能是,限定用戶輸入必須是某種格式文件,然后保存為該格式。分析到這里,下面有很多需要繼續(xù)分析地方,今天先提出大綱。接下來(lái)會(huì)分析這樣常見3類上存漏洞。
1.使用用戶文件名,生成文件,特殊字符過(guò)濾不嚴(yán)格,導(dǎo)致文件生成出現(xiàn)漏洞
2.移動(dòng)文件目錄時(shí)候,由于采用用戶傳入的文件名拼接,生成到錯(cuò)誤目錄
3.相信用戶輸入type 類型,直接將用戶文件名保存為文件
相關(guān)文章
Thinkphp實(shí)現(xiàn)自動(dòng)驗(yàn)證和自動(dòng)完成
這篇文章主要介紹了Thinkphp實(shí)現(xiàn)自動(dòng)驗(yàn)證和自動(dòng)完成的相關(guān)資料,需要的朋友可以參考下2015-12-12
PHP HTML JavaScript MySQL代碼如何互相傳值的方法分享
有時(shí)候我們需要在PHP HTML JavaScript中互相傳值,那么就可以參考下面的方法,asp,asp.net都是一樣的思路與原理,需要的朋友可以參考下2012-09-09
php連接與操作PostgreSQL數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了php連接與操作PostgreSQL數(shù)據(jù)庫(kù)的方法,以實(shí)例形式較為詳細(xì)的分析了php連接PostgreSQL數(shù)據(jù)庫(kù)以及進(jìn)行讀取與增加、修改、刪除等技巧,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12
PHP簡(jiǎn)單實(shí)現(xiàn)二維數(shù)組賦值與遍歷功能示例
這篇文章主要介紹了PHP簡(jiǎn)單實(shí)現(xiàn)二維數(shù)組賦值與遍歷功能,涉及php數(shù)組的簡(jiǎn)單賦值、遍歷、運(yùn)算、讀取等操作使用技巧,需要的朋友可以參考下2017-10-10
完美解決phpexcel導(dǎo)出到xls文件出現(xiàn)亂碼的問(wèn)題
下面小編就為大家?guī)?lái)一篇完美解決phpexcel導(dǎo)出到xls文件出現(xiàn)亂碼的問(wèn)題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10
PHP學(xué)習(xí)的技巧和學(xué)習(xí)的要素總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于PHP學(xué)習(xí)的技巧和學(xué)習(xí)的要素總結(jié)內(nèi)容,需要的朋友們可以參考下。2020-01-01
使用NetBeans + Xdebug調(diào)試PHP程序的方法
前些天發(fā)現(xiàn)通過(guò)Notepad++的DBGP插件結(jié)合PHP的xdebug擴(kuò)展可以實(shí)現(xiàn)PHP文件調(diào)試,同時(shí),介紹說(shuō)包含了單步調(diào)試、監(jiān)視變量還有跨文件調(diào)試。2011-04-04

