PHP代码审计——2、PHP代码审计之PHP环境简介(Seay源代码审计系统)
本篇文章給大家分享的內(nèi)容是php環(huán)境簡(jiǎn)介,有興趣的朋友可以看一下,也可以給有需要幫助的同學(xué)一點(diǎn)參考
前言
代碼在不同環(huán)境下執(zhí)行的結(jié)果也會(huì)大有不同,可能就是因?yàn)橐粋€(gè)配置問題,導(dǎo)致一個(gè)非常高危的漏洞能夠利用;也可能你已經(jīng)找到一個(gè)漏洞就因?yàn)槟愕呐渲脝栴},導(dǎo)致你弄了好久都無法構(gòu)造成功的漏洞利用代碼。然而,在不同的PHP版本中配置指令也會(huì)有不一樣的地方,新的版本可能會(huì)增加或者刪除部分指令,改變指令默認(rèn)設(shè)置或者固定設(shè)置命令,因此,我們?cè)诖a審計(jì)之前需要非常熟悉PHP各個(gè)版本中配置文件的核心指令,才可以高效的挖掘到高質(zhì)量的漏洞。
PHP_INI_*常量
| 常量 | 含義 |
| PHP__INI__USER | 該配置選項(xiàng)可以再用戶的PHP腳本或Windows注冊(cè)表中設(shè)置 |
| PHP__INI__PERDIR | 該配置選項(xiàng)可以再php.ini ..htaccess或http.conf中設(shè)置 |
| PHP__INI__SYSTEM | 該設(shè)置選項(xiàng)可以在php.ini或http.conf中設(shè)置 |
| PHP__INI__ALL | 該配置選項(xiàng)可在任何地方設(shè)置 |
| php.ini only | 該設(shè)置選項(xiàng)僅可在php.ini中設(shè)置 |
PHP的配置文件指令多達(dá)數(shù)百項(xiàng),這里就不一一做介紹了,如果對(duì)這方面有興趣的話可以去PHP配置官方說明文件中查看具體內(nèi)容: http://www.php.net/manual/zh/ini.list.php
PHP常見的基本設(shè)置
(1)open_basedir設(shè)置
open_basedir能限制應(yīng)用程序能訪問的目錄,檢查有沒有對(duì)open_basedir進(jìn)行設(shè)置,當(dāng)然有的通過web服務(wù)器來設(shè)置,例如:apache的php_admin_value,nginx+fcgi通過conf來控制。
(2)allow_url_fopen設(shè)置
如果allow_url_fopen=ON,那么PHP可以讀取遠(yuǎn)程文件進(jìn)行操作,這個(gè)容易被攻擊者利用。
(3)allow_url_include設(shè)置
如果allow_url_include=ON,那么PHP可以包含遠(yuǎn)程文件,會(huì)導(dǎo)致嚴(yán)重漏洞。
(4)safe_mode_exec_dir設(shè)置
這個(gè)選項(xiàng)能控制php可調(diào)用的外部命令的目錄,如果php程序中有調(diào)用外部命令,那么知道外部命令的目錄,能控制程序的風(fēng)險(xiǎn)。
(5)magic_quote_gpc設(shè)置
這個(gè)選項(xiàng)能轉(zhuǎn)義提交給參數(shù)中的特殊字符,建議設(shè)置magic_quote_gpc=ON
(6)register_globals設(shè)置
開啟這個(gè)選項(xiàng),將會(huì)導(dǎo)致PHP對(duì)所有外部提交的變量注冊(cè)為全局變量,后果相當(dāng)嚴(yán)重。
(7)safe_mode設(shè)置
safe_mode是php的重要安全特性,建議開啟
(8)session_use_trans_sid設(shè)置
如果啟動(dòng)session_use_trans_sid,會(huì)導(dǎo)致PHP通過url傳遞會(huì)話ID,這樣會(huì)導(dǎo)致攻擊者容易劫持當(dāng)前會(huì)話,或者欺騙用戶使用已被攻擊者控制的現(xiàn)有會(huì)話。
(9)display_errors設(shè)置
如果啟動(dòng)此選項(xiàng),PHP將會(huì)輸出所有的錯(cuò)誤或警告信息,攻擊者能利用這些信息獲取web根路徑等敏感信息。
(10)expose_php設(shè)置
如果啟動(dòng)expose_php選項(xiàng),那么由php解釋其生成的每個(gè)響應(yīng)都會(huì)包含主機(jī)系統(tǒng)上所安裝的PHP版本。了解到遠(yuǎn)程服務(wù)器上運(yùn)行的PHP版本后,攻擊者就能針對(duì)系統(tǒng)枚舉已知的盜取手段,從而大大增加成功發(fā)動(dòng)攻擊的機(jī)會(huì)。
(11)magic_quotes_sybase(魔術(shù)引號(hào)自動(dòng)過濾)
magic_quotes_sybase指令用于自動(dòng)過濾特殊字符,當(dāng)設(shè)置為on時(shí),它會(huì)覆蓋掉magic_quotes_gpc=on的配置,也就是說,及時(shí)配置了gpc=on也是沒有效果的。這個(gè)指令與gpc的共同點(diǎn)是處理的對(duì)象一致,即都是對(duì)POST\GET\Cookie進(jìn)行處理。
(12)disable_functions(禁用函數(shù))
在正式的生產(chǎn)環(huán)境當(dāng)中,為了更安全地運(yùn)行PHP,也可以使用disable_functions指令來禁止一些敏感函數(shù)的使用。當(dāng)你想用本指令禁止一些危險(xiǎn)函數(shù)是,切記要把dl()函數(shù)也加入到禁止列表,因?yàn)楣粽呖梢岳胐l()函數(shù)來加載自定義的PHP擴(kuò)展以突破disable_function指令的限制。
相關(guān)推薦:
php代碼審計(jì)(一)-----調(diào)試函數(shù)
以上就是PHP代碼審計(jì)——2、PHP代碼審計(jì)之PHP環(huán)境簡(jiǎn)介 的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注風(fēng)君子博客其它相關(guān)文章!
總結(jié)
以上是生活随笔為你收集整理的PHP代码审计——2、PHP代码审计之PHP环境简介(Seay源代码审计系统)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 命令方块召唤可骑的龙
- 下一篇: 盘点当年在报亭买过的游戏杂志