轉載 2017-03-28 作者:律師''''小窩
phpinfo函數
phpinfo函數 PHP中提供了PHPInfo()函數,該函數返回 PHP 的所有信息,包括了 PHP 的編譯選項及擴充配置、PHP 版本、服務器信息及環境變量、PHP 環境變量、操作系統版本信息、路徑及環境變量配置、HTTP 標頭、及版權宣告等信息。
其函數定義如下:
語法: int phpinfo(void);
返回值: 整數
函數種類: PHP 系統功能
例如新建一個php文件,在其中輸入以下內容:
1 | <?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等
總結
暫時只想了這麼多,歡迎留言補充,一定及時更新。以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助。