PHP代码审计——————2、PHP代码审计之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指令的限制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FLy_鹏程万里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值