文件上傳漏洞是指由于程序員再開發時,未對用戶上傳的文件進行嚴格的驗證和過濾,而導致用戶可以上傳可執行的動態腳本文件
Pass-01(前端驗證繞過)
上傳111.php文件,發現彈窗顯示不允許,并給出白名單文件類型
方法一:?因為是前端攔截,所以刪掉攔截代碼,再嘗試上傳,發現上傳成功
?方法二:禁用前端JavaScript,嘗試上傳,上傳成功
Pass-02 (Content-Type方式繞過)
上傳.php用BP抓包,修改文件類型
之后放行,上傳成功?
Pass-03 (黑名單繞過)
查看源代碼,找到黑名單里面的后綴
?不上傳黑名單里面的后綴,上傳php3、php5、phtml等后綴的木馬
上傳成功
Pass-04 (.htaccess文件繞過)
上傳.htaccess配置文件,.htaccess是apache的配置文件,在這個文件中配置我們上傳的圖片用php解析器解析
?上傳正常的圖片后綴的木馬
上傳后成功訪問?
Pass-05(后綴大小寫繞過)?
上傳大小寫的php后綴,比如PhP,Php等等
訪問成功?
Pass-06(文件后綴(空)繞過)
文件名末尾添加空格,由于windows命名規范不允許文件名末尾出現空格,會被windows電腦自動刪除。所以用BP抓包進行修改
放行后上傳成功?
Pass-07(文件后綴(點)繞過)
與第六關原理相同,文件名末尾添加圓點,由于windows命名規范不允許文件名末尾出現點,會被windows電腦自動刪除。所以用BP抓包進行修改
Pass-08? ?::$DATA(Windows文件流繞過)
在windows識別文件的時候,會把::$data當做文件流文件去識別
上傳成功?
Pass-09(構造文件后綴繞過)
點空格點繞過,去除文件名末尾的點,剩下點空格,收尾去空,剩下點。最終上傳的木馬名字是木馬.php點,由于文件名末尾的點不符合windows的命名規范,所以上傳成功以后只剩下木馬.php
放行上傳成功?
Pass-10 (雙寫文件后綴繞過)
雙寫后綴繞過 ,遇到php會刪除,那么雙寫,用pphphp后綴
上傳成功
?Pass-11(%00截斷繞過(GET))
(GET) ?直接在保存的文件名后面加%00,起到截斷作用
放行上傳成功
Pass-12(%00截斷繞過(POST))
不同于上一關的是post的%00需要url解碼
放行訪問成功?
Pass-13(圖片馬繞過)?
圖片馬不能單獨用,需要和文件包含漏洞組合用。
木馬前添加GIF89a,在上傳.jpg文件
?用文件包含漏洞把圖片馬包含到頁面上執行
Pass-14和Pass-15與Pass-13一樣
Pass-16(二次渲染繞過)
上傳圖片
用文件包含漏洞把圖片馬包含到頁面上執行?
Pass-17 (條件競爭繞過)
上傳能夠輸出木馬文件的木馬,然后上傳了這個木馬會在極短的時間內被刪除,我們需要抓包一直爆破這個上傳木馬的數據包
同時一直訪問 777.php,將得到 webshell.php木馬文件
然后訪問webshell.php,發現存在,并用蟻劍連接成功
?
Pass-18 (條件競爭? ?二 )
與Pass-17原理一樣,?不同的是把php文件改成jpg文件上傳,所以在jpg內寫上輸出木馬到目錄里面的代碼,利用文件包含漏洞一直包含這個文件,只要包含到這個文件,這個jpg文件內的php代碼就會被運行,木馬文件webshell.php就會生成
Pass-19(move_uploaded_file()截斷)
把jpg文件保存為php文件
/.繞過,文件名末尾的點會被刪除,/會被當做路徑?
?
?