今天看到ecshop後台拿webshell的文章,想起來很長時間很多版本存在的apache的php副檔名解析漏洞,主要問題是:不管檔案最後字尾為什麼,只要是.php.*結尾,就會被apache伺服器解析成php檔案,問題是apache如果在mime.types檔案裡面沒有定義的副檔名在諸如x1.x2.x3的情況下,最後乙個x3的沒有定義,他會給解析成倒數第二個的x2的定義的副檔名。所以***.php.rar或者***.php.111這些預設沒在mime.types檔案定義的都會解析成php的。同樣如果是cgi或者jsp也一樣,那怎麼樣防止這個問題發生能?
2、取消上傳,這個也不太可能。
3、上傳檔案強制改名,這個由程式實現,如果在虛擬機器比較多,開發人員多的情況下也不靠譜。
4、比較靠譜的終極**,禁止*.php.*這種檔案執行許可權,當然可能誤殺,但是基本上這種規則的檔名肯定有問題。
order allow,deny
deny from all
很多dz論壇、ecshop、phpcms等後台都有利用此漏洞上傳webshell的方法,那如果我們按上述方法操作了,那很多問題都可以解決了,希望本文對你有所幫助。
php獲取副檔名
第一種 123 4567 891011 1213 1415 獲取副檔名 substr strrchr name.txt 1 function fileextension fstr file extension fileextension abc def.g 123 print r file exte...
PHP獲取副檔名
第一種 tok strtok string,使用strtok將字串分割成乙個個令牌 while tok count count arr i count 1 file type arr i 第二種 arr explode string 使用explode 函式分割字串,返回值是乙個陣列 count c...
php獲取 副檔名
1 str as.da.efg 2 獲取檔案字尾名 3 strrchr 查詢指定字元在字串中的最後一次出現 4echo substr strrchr str,1 5 67 strrpos 計算指定字串在目標字串中最後一次出現的位置 8echo substr str,strrpos str,1 9 1...