Web安全-基於上傳漏洞的黑名單檢測繞過


實驗聲明:本實驗教程僅供研究學習使用,請勿用於非法用途,違者一律自行承擔所有風險!

基於上傳漏洞的黑名單檢測繞過

【實驗目的】

  通過本實驗理解黑名單檢測在上傳文件檢測時存在的缺陷,掌握體驗上傳漏洞服務器端黑名單檢測的繞過方式。

【實驗環境】

目標網站:上傳漏洞訓練平台(**第七關**)

滲透主機:burpsuitv1732 工具:Burpsuite 

【實驗原理】

  服務器端檢測源代碼如下圖

  分析一下,綜合應用的檢測方法有:

(1)黑名單: array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");

  (2)strrchr() 函數查找字符在指定字符串中從后面開始的第一次出現的位置,如果成功,則返回從該位置到字符串結尾的所有字符。例如<?php echo strrchr( '123456789.xls' , '.' );?> 程序的輸出結果是:.xls。

  (3)strtolower($file_ext)函數作用為將指定字符串轉換為小寫(通過后綴為Php大小寫繞過的方法就失效了)。

  (4)str_ireplace('::$DATA', '', $file_ext)函數作用是去除字符串::$DATA。

  (5)trim($file_ext)函數作用是首尾去空,將后綴名里的前后空格都去掉。

  針對此實驗中黑名單檢測的繞過方法:   windows有一個特性,windows系統自動去掉不符合規則符號后面的內容(比如新建了一個1.txt文件,然后你將名稱改為1.txt.,雖然警告報錯,但是windows還是會默認去掉后面的.,名字還是變成了1.txt)。

因此上傳xx.php.類型文件

strrchr函數會將上傳的文件名后綴處理為.php.,當上傳到win機器上時又會將后面的.去掉,然后后綴就又會被還原成.php,這樣php文件就可以執行了。

實驗步驟

第一步 啟動目標網站的網站

登錄靶機后,進入D:/phpstudy2018目錄,然后雙擊啟動phpStudy。

查看php版本:

如果勾選的不是5.2.17版本,則勾選該版本,然后服務器自動重啟。

查看magic_quotes_gpc狀態。

確保magic_quotes_gpc開關,處於關閉(OFF)狀態。

第二步 滲透主機將瀏覽器與burpsuit關聯,開啟代理抓包功能

第三步 上傳1.php文件並抓包,在burp修改文件后綴名為.php.

第四步 成功上傳php文件

【思考與總結】

  通過本次實驗,成功實現了繞過黑名單檢測進行webshell的上傳與解析,我們重點要掌握上傳漏洞的攻擊方法以及防御措施。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM