PHP代碼審計——2、PHP代碼審計之PHP環境簡介

來源:互聯網
上載者:User
本篇文章給大家分享的內容是php環境簡介,有興趣的朋友可以看一下,也可以給有需要協助的同學一點參考


前言


代碼在不同環境下執行的結果也會大有不同,可能就是因為一個配置問題,導致一個非常高危的漏洞能夠利用;也可能你已經找到一個漏洞就因為你的配置問題,導致你弄了好久都無法構造成功的漏洞利用代碼。然而,在不同的PHP版本中配置指令也會有不一樣的地方,新的版本可能會增加或者刪除部分指令,改變指令預設設定或者固定設定命令,因此,我們在代碼審計之前需要非常熟悉PHP各個版本中設定檔的核心指令,才可以高效的挖掘到高品質的漏洞。

PHP_INI_*常量


常量 含義
PHP__INI__USER 該配置選項可以再使用者的PHP指令碼或Windows註冊表中設定
PHP__INI__PERDIR 該配置選項可以再php.ini ..htaccess或http.conf中設定
PHP__INI__SYSTEM 該設定選項可以在php.ini或http.conf中設定
PHP__INI__ALL 該配置選項可在任何地方設定
php.ini only 該設定選項僅可在php.ini中設定

PHP的設定檔指令多達數百項,這裡就不一一做介紹了,如果對這方面有興趣的話可以去PHP配置官方說明檔案中查看具體內容: http://www.php.net/manual/zh/ini.list.php

PHP常見的基本設定

(1)open_basedir設定

open_basedir能限制應用程式能訪問的目錄,檢查有沒有對open_basedir進行設定,當然有的通過web伺服器來設定,例如:apache的php_admin_value,nginx+fcgi通過conf來控制。

(2)allow_url_fopen設定

如果allow_url_fopen=ON,那麼PHP可以讀取遠程檔案進行操作,這個容易被攻擊者利用。

(3)allow_url_include設定

如果allow_url_include=ON,那麼PHP可以包含遠程檔案,會導致嚴重漏洞。

(4)safe_mode_exec_dir設定

這個選項能控制php可調用的外部命令的目錄,如果php程式中有調用外部命令,那麼知道外部命令的目錄,能控製程序的風險。

(5)magic_quote_gpc設定

這個選項能轉義提交給參數中的特殊字元,建議設定magic_quote_gpc=ON

(6)register_globals設定

開啟這個選項,將會導致PHP對所有外部提交的變數註冊為全域變數,後果相當嚴重。

(7)safe_mode設定

safe_mode是php的重要安全特性,建議開啟

(8)session_use_trans_sid設定

如果啟動session_use_trans_sid,會導致PHP通過url傳遞會話ID,這樣會導致攻擊者容易劫持當前會話,或者欺騙使用者使用已被攻擊者控制的現有會話。

(9)display_errors設定

如果啟動此選項,PHP將會輸出所有的錯誤或警告資訊,攻擊者能利用這些資訊擷取web根路徑等敏感資訊。

(10)expose_php設定

如果啟動expose_php選項,那麼由php解釋其產生的每個響應都會包含主機系統上所安裝的PHP版本。瞭解到遠程伺服器上啟動並執行PHP版本後,攻擊者就能針對系統枚舉已知的盜取手段,從而大大增加成功發動攻擊的機會。

(11)magic_quotes_sybase(魔術引號自動過濾)

magic_quotes_sybase指令用於自動過濾特殊字元,當設定為on時,它會覆蓋掉magic_quotes_gpc=on的配置,也就是說,及時配置了gpc=on也是沒有效果的。這個指令與gpc的共同點是處理的對象一致,即都是對POST\GET\Cookie進行處理。

(12)disable_functions(禁用函數)

在正式的生產環境當中,為了更安全地運行PHP,也可以使用disable_functions指令來禁止一些敏感函數的使用。當你想用本指令禁止一些危險函數是,切記要把dl()函數也加入到禁止列表,因為攻擊者可以利用dl()函數來載入自訂的PHP擴充以突破disable_function指令的限制。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.