Apache 漏洞之字尾名解析漏洞

2021-08-25 07:02:14 字數 743 閱讀 8773

我們都知道windows2003 + iis6.0下,如果目錄結構中有***.asp這樣的目錄,那麼所有這個目錄下的檔案不管副檔名為什麼,都會當作asp來解析。我們一般稱這個漏洞為windows2003+iis6.0目錄解析漏洞。但是大家可能不知道的是,apache伺服器也存在類似的解析漏洞

我們來做下實驗,我在本地搭建好了乙個apache+php的測試平台

兩個檔案phpinfo.php phpinfo.php.a ,我們來訪問下phpinfo.php.a

可以解析,換成其他字尾仍然可以

不管檔案最後字尾為什麼,只要是.php.*結尾,就會被apache伺服器解析成php檔案,問題是apache如果在mime.types檔案裡面沒有定義的副檔名在諸如x1.x2.x3的情況下,最後乙個x3的沒有定義,他會給解析成倒數第二個的x2的定義的副檔名。所以***.php.rar或者***.php.111這些預設沒在mime.types檔案定義的都會解析成php的。同樣如果是cgi或者jsp也一樣。。。

那麼如果涉及到web程式的上傳頁面,如果上傳的檔名是我們可以定義的,那麼我們完全可以上傳乙個***.php.jpg這樣名字的webshell,apache仍然會當作php來解析,我們再來測試下jpg

防禦方法:

apache配置檔案,禁止.php.這樣的檔案執行,配置檔案裡面加入

order allow,deny

deny from all

儲存,從起apache以後,我們再來看看

ok,防禦方法就是這樣

Apache 漏洞之字尾名解析漏洞

我們都知道windows2003 iis6.0下,如果目錄結構中有 asp這樣的目錄,那麼所有這個目錄下的檔案不管副檔名為什麼,都會當作asp來解析。我們一般稱這個漏洞為windows2003 iis6.0目錄解析漏洞。但是大家可能不知道的是,apache伺服器也存在類似的解析漏洞 我們來做下實驗,...

字尾名判斷演算法

字尾名判斷演算法 採用mfc框架的cstring可以非常快速完成,但如果採用的是標準c 則沒那麼直接方便.下面是乙個判斷字尾名的演算法,絕對不是效率最高的,也絕對不是最嚴謹的,但可能是比較簡單易懂的.bool checkextendname const char pszstr,const char ...

擷取檔案字尾名

擷取給的檔名的字尾名 在這裡要注意可能出現的檔案是否有字尾名,例如.abc和abc.其實這兩種是沒有字尾名的,所以判斷切片 的索引位置必須有所限制 def foo filename,has dot false 獲取檔名的字尾名 param filename 檔名 param has dot 字尾名是...