PHPInfo()函數主要用於網站建置過程中測試建置的PHP環境是否正確,許多網站在測試完成後並沒有及時刪除,因此當存取這些測試頁面時,會輸出伺服器的關鍵訊息,這些訊息的洩漏將導致伺服器被滲透的風險。下面就來看看詳細的介紹吧。
phpinfo函數
phpinfo函數PHP中提供了PHPInfo()函數,該函數傳回PHP 的所有信息,包括了PHP 的編譯選項及擴充配置、PHP 版本、伺服器資訊及環境變數、PHP 環境變數、作業系統版本資訊、路徑及環境變數設定、HTTP 標頭、及版權宣告等訊息。
其函數定義如下:
語法: int phpinfo(void);
#傳回值: 整數
函數種類: PHP 系統功能
例如新建一個php文件,在其中輸入以下內容:
<?php phpinfo(); ?>
所以phpinfo()
想必對大家都最熟悉的了,在搭建環境之後都會隨後寫一個phpinfo()
來測試環境是否正常,很多人測試完畢忘記刪除就開始部署環境了,這就造成了一些敏感資訊的洩漏。那我們能從phpinfo()
中獲得哪些敏感資訊呢?
php版本這種就不用說了,來看一下洩漏了哪些比較敏感的資訊。
一、絕對路徑(_SERVER[“script_FILENAME”])
這個是最常用,也是最有效的一個方法,找到phpinfo()
頁面可以直接找到網站的絕對路徑,對於寫入shell和資訊蒐集是必不可少的。
二、支援的程式
可以透過phpinfo()
查看一些特殊的程式服務,例如redis、 memcache、mysql、SMTP、curl等等如果伺服器裝了redis或memcache可以透過ssrf來getshell了,在discuz都出現過這類問題。如果確定安裝了redis或memcache的話,在沒有思路的情況下,可以著重找一下ssrf
三、洩漏真實ip(_SERVER[“SERVER_ADDR”]或SERVER_ADDR)
有時候透過phpinfo()
洩漏的ip可以查到旁站、c段什麼的,直接無視cdn,百事不靈。
四、GOPHER
也算是ssrf一部分吧,或者說主要靠ssrf利用起來,如果支持gopher,ssrf便沒有壓力咯
五、fastcgi
查看是否開啟fastcgi和fastcgi的版本,可能導致解析漏洞、遠端命令執行、任意檔案讀取等問題
六、洩漏快取 檔案位址(_FILES[“file1”])
#向phpinfo() post一個shell可以在_FILES[“file1”]
中看到上傳的臨時文件,如果有個lfi,便可以直接getshell了。
七、一些敏感設定
allow_url_include、allow_url_fopen、disable_functions、open_basedir、short_open_tag等等
例如allow_url_include可用於遠端檔案包含、disable_functions用來查看停用函數,繞過執行、查看是否開啟open_basedir,用p牛的繞過open_basedir的方法有可能能讀一些沒權限的目錄等等。
此外還能取得一些環境訊息,例如Environment中的path、log等
#總結##
以上是淺談從phpinfo中能獲得哪些有價值的資訊的詳細內容。更多資訊請關注PHP中文網其他相關文章!