DVWA學習日記-5 文件上傳

文件上傳

舉例:
這裏講一個很有名的,千里之堤,潰於蟻穴,警示我們要注重細節,一隻螞蟻也能毀了堤壩,我們就是要將不起眼的螞蟻送到這個堤壩上,這裏堤壩就是網站,螞蟻就是文件

概念:
Web中的常用功能,將本地文件上傳到服務器上

文件上傳漏洞,Web運行用戶上傳惡意代碼,並在服務器上運行
文件上傳類似代碼:upload(“hello.php”),上傳對應的是upload的函數,文件就是hello.php,文件就是我們可以控制的,我們要做的就是將我們設計好的文件上傳上去

準備:
火狐瀏覽器
DVWA
FoxyProxy
OWASP ZAP

手工實戰
1.進入簡單模式
進入File Upload,是文件上傳漏洞的主界面,常見的上傳圖片的功能
在這裏插入圖片描述
2.面對陌生頁面第一的反應就是試
網上隨便找個圖片,命名爲test.jpg
在這裏插入圖片描述
3.上傳這張圖片
在這裏插入圖片描述
4.點了upload後
發現出現了紅框裏的字,意思是上傳成功了
在這裏插入圖片描述
5.上傳後的路徑
我們研究一下這個路徑,與我們的url進行對比

url:
http://localhost/DVWA-master/vulnerabilities/upload/#
上傳地址:
../../hackable/uploads/test.jpg succesfully uploaded!
再進行拼接得到了完整的路徑
http://localhost/DVWA-master/vulnerabilities/upload/../../hackable/uploads/test.jpg
再將../../做消除操作,得到鏈接
http://localhost/DVWA-master/hackable/uploads/test.jpg

6.我們再去訪問一下這個圖片
在這裏插入圖片描述
正常操作告一段落
7.嘗試操作不正常的
在本地創建一個phpinfo.php文件,執行後是服務器的信息
在這裏插入圖片描述
8.將我們的phpinfo.php上傳至服務器

在這裏插入圖片描述
9.訪問看一下這個文件,成功執行,這裏就說明存在文件上傳漏洞,能夠執行並查看文件
在這裏插入圖片描述
10.執行phpinfo只是判斷漏洞的存在
上傳一句話webshell
創建cmd.php
在這裏插入圖片描述
11.上傳後訪問文件
在這裏插入圖片描述
12.執行我們的命令
?cmd=phpinfo();
在這裏插入圖片描述
13.我們來查看一下系統命令
?=cmd=system(‘dir’); 運用到php的system函數
在這裏插入圖片描述
查看文件的操作
type命令,反斜槓需要轉移的
在這裏插入圖片描述
14.進入中等等級模式
嘗試上傳cmd.php文件
報錯:你上傳的不是圖片,不允許上傳
在這裏插入圖片描述
15.準備代理
首先使用代理,變紅表示啓用
在這裏插入圖片描述
再加設置
在這裏插入圖片描述
保存
在這裏插入圖片描述
啓用代理
在這裏插入圖片描述
而zap的代理默認就是127.0.0.1 8080

16.準備抓包
先上傳正常圖片的包
在這裏插入圖片描述
上傳webshell的包
在這裏插入圖片描述
對比一下
發現文件名的差別,還有文件類型以及文件內容的差別
正常包的內容都是二進制文件
在這裏插入圖片描述
17.我們不斷猜測,發現好像是文件類型的地方被服務端限制了
修改文件類型重新發送

在這裏插入圖片描述
成功繞過文件類型限制,後面的利用就跟簡單模式一樣
在這裏插入圖片描述
查看源代碼
在這裏插入圖片描述
18.進入高難度模式
嘗試使用修改文件類型的,結果無法上傳

19.嘗試
我們嘗試下上傳文件的後綴和文件內容是不是受到限制了
嘗試php後綴名和php內容 失敗
嘗試php後綴名和img內容 失敗
嘗試img後綴名和php內容 失敗

20.最後知道是文件類型和內容一起限制了
我們就做內涵圖進行繞過
準備一張圖片,和1.txt裏面寫入<?php phpinfo();?>
在這裏插入圖片描述
在cmd下輸入copy 1.jpg/b+1.txt/a 2.jpg
再打開這張圖片發現沒有任何變化
在這裏插入圖片描述
利用編輯器打開拉到最後可以看到php代碼

21.上傳
在這裏插入圖片描述
查看這張圖片
在這裏插入圖片描述

22.上次筆記4中的文件包含漏洞,高難度的,需要配合文件上傳漏洞進行file訪問本地的文件

這時候我們就可以兩個一起配合使用
前面的亂碼就是圖片內容
在這裏插入圖片描述
23.使用菜刀
利用webshell上傳
再使用菜刀訪問webshell即可

24.nginx文件類型錯誤解析漏洞
phpstudy切換Nginx
在這裏插入圖片描述
進入查看php.ini的配置
在這裏插入圖片描述
確保cgi.fix_pathinfo爲1
在這裏插入圖片描述

這樣服務端設置存在畸形解析
xxx.xxx/xxx.php
2.jpg後面的路徑是/2.php
而/2.php是不存在的,畸形解析了它
在這裏插入圖片描述
查看源代碼
在這裏插入圖片描述
最後進入無漏洞模式
我們再上傳2.jpg的php內容的文件,上傳完再下載下來,被服務端重新生成了圖片,有效修復了漏洞

查看源代碼
紅框中就是重新編碼了圖片文件
在這裏插入圖片描述

修復
1.文件後綴名的白名單
2.文件類型的匹配
3.文件內容的判斷
4.阻止非法文件的執行

在不可能模式中
將文件重命名
將文件壓縮重寫生成
存儲目錄執行權限
存儲目錄與Web分離

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章