当前位置:Gxlcms > PHP教程 > PHP代码审计——2、PHP代码审计之PHP环境简介

PHP代码审计——2、PHP代码审计之PHP环境简介

时间:2021-07-01 10:21:17 帮助过:21人阅读

本篇文章给大家分享的内容是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.com/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指令的限制。

相关推荐:

php代码审计(一)-----调试函数

以上就是PHP代码审计——2、PHP代码审计之PHP环境简介 的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行