天天看點

apache http可以通路https沒權限_apache_cgi繞過disable_functions

apache http可以通路https沒權限_apache_cgi繞過disable_functions

前言

apache有一個cgi子產品,該子產品可以設定指定檔案類型以cgi方式讓伺服器運作,例如一個不存在的afaafa字尾檔案,通過設定,就可以當作cgi運作,因為是直接伺服器運作的,是以可以繞過php的disable_functions限制。

環境搭建

說是環境需要是linux、apache+php、apache開啟cgi和rewrite、web目錄有allowoverride權限、目前目錄可寫,看着感覺很難搭建,是以這裡就直接使用蟻劍的docker環境進行測試。

位址:

https://github.com/AntSwordProject/AntSword-Labs/tree/master/bypass_disable_functions/3
           

相關指令如下:

git clone https://github.com/AntSwordProject/AntSword-Labs.gitcd到3檔案夾下docker-compose up -d
           

手動測試(失敗)

這裡以afaafa字尾為例,這裡最好使用一個未知的字尾,如果使用已知的,apache解析可能會碰到問題,導緻無法當作cgi執行。

afa.afaafa檔案中寫入相關shell,示例如下。

#!/bin/shecho&id
           

然後再建一個.htaccess檔案,内容如下,意思是把afaafa檔案當作cgi執行。

OPtions +ExecCGIAddHandler cgi-script .afaafa
           

建立好後,将這兩個檔案傳到伺服器。

apache http可以通路https沒權限_apache_cgi繞過disable_functions

這時通路afa.afaafa檔案會提示伺服器内部錯誤。

apache http可以通路https沒權限_apache_cgi繞過disable_functions

原因是該檔案沒有執行權限,可以看到權限是0644,需要改成0777,修改方法有兩種,一種是直接通過類似蟻劍的軟體直接右鍵修改權限,另一種可以通過php的chmod修改,如下圖。

apache http可以通路https沒權限_apache_cgi繞過disable_functions
apache http可以通路https沒權限_apache_cgi繞過disable_functions

然後再通路還是報内部錯誤。後來用蟻劍插件測試,插件運作後會自動彈一個指令視窗出來,如果不在這個視窗執行下指令,則通路也是内部錯誤。

蟻劍測試

蟻劍測試選擇apache_mod_cgi模式,運作後會彈出一個指令行,如下圖。

apache http可以通路https沒權限_apache_cgi繞過disable_functions

這時如果不運作指令,直接通路shell.ant,重新整理了很多遍,一直是錯誤頁。

apache http可以通路https沒權限_apache_cgi繞過disable_functions

如果去指令行随便輸入一個指令,再次通路shell.ant檔案才會正常。

apache http可以通路https沒權限_apache_cgi繞過disable_functions

總結

無。