最后再來分析high級別的代碼:
成都創(chuàng)新互聯(lián)主要從事網(wǎng)站制作、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)大連,10多年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
這里首先有一條語句需要理解:
$uploaded_ext = substr($uploaded_name, strrpos($uploaded_name, '.') + 1); |
在這條語句里,首先利用strrpos() 函數(shù)來查找“.”在變量$uploaded_name中出現(xiàn)的位置,然后將得到的數(shù)值加1,最后利用substr()函數(shù)從變量$uploaded_name的指定位置截取部分字符串。
總之,這條語句的作用就是從我們所上傳的文件名中截取出擴(kuò)展名部分。
接下來就用if語句來判斷這個擴(kuò)展名是否是大寫或小寫的jpg/jpeg,如果不是的話則不允許上傳,因而這里就是定義了一份白名單,這也是安全性比較高的一種防御措施。
最后總結(jié)一下,如果要挖掘上傳漏洞,那么就可以在網(wǎng)頁代碼中搜索$_FILES這個用于接收上傳文件的變量,或是搜索move_uploaded_file這個用于執(zhí)行上傳操作的函數(shù),然后再分析是否采取了過濾措施。
上傳漏洞作為一種主流的***方式,其形式是非常多樣的,單純就DVWA中這種上傳漏洞而言,定義白名單就是一種不錯的防御方式。