描述
文件上傳漏洞是指由于程序員未對上傳的文件進行嚴格的驗證與過濾,而導(dǎo)致的用戶可以越過其本身權(quán)限向服務(wù)器上傳可執(zhí)行的動態(tài)腳本文件。
危害
非法用戶可以上傳惡意文件(webshell)控制網(wǎng)站、服務(wù)器,上傳webshell后門方便查看服務(wù)器信息、查看目錄、執(zhí)行系統(tǒng)命令。
文件上傳的知識
文件上傳的過程
客戶端? ? 發(fā)送文件-> 服務(wù)器接收-> 網(wǎng)站程序判斷-> 臨時文件->移動到指定的路徑
服務(wù)器? ? 接收的資源程序
服務(wù)器接收資源代碼
<?php
if($_FILES["file"]["erro"]>0)
{
echo "Error:".$_FILES["file"]["erro"]."<br/>";
}
else
{
echo "Upload:". $_FILES["file"]["name"]."<br/>";
echo "Type:". $_FILES["file"]["type"]."<br/>";
echo "Size:". ($_FILES["file"]["size"]/1024)."<br/>";
echo "Stored in:". $_FILES["file"]["tmp_name"];
}
?>
服務(wù)器返回客戶端提供的文件信息
客戶端文件上傳代碼
<html>
<head></head>
<body>
//地址 方法post 編碼方法
<form action="upload.php"method="post"enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file"name="file"id="file"/>
<br/>
<input type="submit"name="submit"value="Sumbmit"/>//Sumbmit提交
</form>
</body>
</html>
客戶端上傳文件到服務(wù)端
文件上傳代碼(SIZE)
值 :0;沒有錯誤發(fā)生,文件上傳成功。
值:1;上傳文件超過php.ini中upload_max_filesize選項限制的值
值:2;上傳文件的大小超過HTML表單中MAX_FILE_SIZE選項指定的值
值:3;文件只有部分上傳
值:4;沒有文件上傳
文件上傳漏洞
直接文件上傳:
直接getshell,無任何限制,攻擊者較容易通過上傳點,獲取網(wǎng)站控制權(quán)限
有條件的上傳:
①、開發(fā)者經(jīng)驗不足,對文件上傳簡單限制(簡單前端驗證,文件頭文件檢測),這種檢測行為一班可以繞過。
②、權(quán)限認證未處理,沒有對文件上傳頁面進行權(quán)限認證,匿名者就能訪問上傳文件,上傳網(wǎng)頁后門到網(wǎng)站目錄控制網(wǎng)站
③、上傳邏輯有問題,上傳文件可以被繞過上傳后門到網(wǎng)站上文章來源:http://www.zghlxwxcb.cn/news/detail-637555.html
有的文件上傳漏洞是通過中間者或者系統(tǒng)特性上傳可以被服務(wù)器解析腳本文件,從而控制網(wǎng)站文章來源地址http://www.zghlxwxcb.cn/news/detail-637555.html
文件上傳漏洞的修復(fù)方案
- 需要存在上傳模板,做好權(quán)限認證,匿名者不可訪問
- 文件上傳目錄設(shè)置禁止腳本文件執(zhí)行
- .設(shè)置上傳白名單,只允許圖片上傳
- 上傳的后綴名,一定要設(shè)置圖片格式.jpg/.png/.gif
到了這里,關(guān)于文件上傳漏洞之漏洞的危害和修復(fù)方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!