一、常见php默认配置选项
1、 short_open_tag
是否使用短标签,“On”表示支持写法:<? and ?>,否则不支持,默认为 "on";
2、 asp_tags
是否使用ASP标签:ASP-style <% %> ,“On”表示支持,默认“Off”;
3、 display_errors
是否显示PHP出错信息,默认“Off”,意为不会有报错信息;
4、 post_max_size
允许PHP接收最大的数据,默认“200M”;
5、 default_charset
默认编码,默认为空,不设置,一般根据实际情况,可以设置为“GBK”或“UTF-8”;
6、 file_uploads
是否允许HTTP上传文件,默认“On”表示允许;
7、 upload_tmp_dir
HTTP上传的临时目录,如果不设置,表示使用系统临时目录;
8、 upload_max_filesize
最大允许上传的单个文件大小,单位M,默认为“200M”,表示最大允许上传单个不超过200M的文件;
9、 disable_functions
禁用的PHP库函数;
10、expose_php
默认为1,当设置为1即真时,我们能够清楚的看到这个网站是用那个php版本来编写的,我们 都知道软件是有漏洞的,所以当攻击者知道你的PHP版本之后,就会去找该PHP版本的漏洞;
11、max_execution_time
该配置选项控制着每个PHP脚本最多只能够执行多长时间,默认是30秒,一般我们的程序不会执行这么长时间的,除了一些非实时并且对性能要求不高的需求外,比如一些统计功能,所以这个时候就需要增加这个值,否则数据统计数据还没有显示出来脚本已经停止了。
12、upload_max_filesize
我们的很多WEB应用都提供了上传图片的功能,随着现在手机像素越来越高,所以照片的尺寸越来越大,这个时候将这些大的照片上传到我们的网上,是会受这个配置选项的影响的,该值默认是2M,所以如果照片大于2M是无法上传的,这个时候必须修改这个配置选项的值,一般情况下,这个配置选项还要和post_max_size配合使用。
13、extension_dir
我们都知道PHP有很多扩展可以使用,那么这些扩展(windows以.dll,linux下以.so结尾的)都是放在这个配置选项指定的目录下面的,所以我们新安装的扩展,应该都统一放在这个配置选项指定的目录下面,以方便统一管理,这个选项支持相对路径和绝对路径的设置。
14、last_modified
该配置选项的目的就是将该PHP脚本文件最后修改的时间发送到浏览器,利用这个选项,我们能够清楚的看到本次响应请求的PHP脚本是不是我们最近修改的,有了这个结果,我们能够做很多事情,比如缓存响应以提高站点的性能。
注意:在渗透测试过程中,可以关注以下 PHP 配置选项:
-
display_errors:该选项决定是否在页面上显示错误信息。在渗透测试中,可以利用该选项来获取敏感信息或进行代码执行攻击。
-
allow_url_include 和 allow_url_fopen:这两个选项控制是否允许在 PHP 代码中使用远程 URL 来包含或读取文件。如果开启了这些选项,攻击者可以通过构造恶意 URL 来执行远程代码或包含敏感信息。
-
register_globals:该选项控制是否将 GET、POST 和 COOKIE 参数自动转换为全局变量。开启该选项可能导致代码执行漏洞。
-
open_basedir:该选项可以限制 PHP 脚本可以访问的目录。在渗透测试中,可以尝试绕过该限制来获取敏感信息或执行代码。
-
disable_functions:该选项可以禁用某些 PHP 内置函数。在渗透测试中,可以尝试绕过该限制来执行代码。
-
safe_mode:该选项可以限制 PHP 脚本可以访问的文件和目录。在渗透测试中,可以尝试绕过该限制来获取敏感信息或执行代码。
二、
1、ini_set( ):设置指定配置选项的值。这个选项会在脚本运行时保持新的值,并在脚本结束时恢复;
2、ini_get( ): 获取一个配置选项的值;
<?php
echo ini_get('display_errors');
if (!ini_get('display_errors'))
{
ini_set('display_errors', '1');
}
echo ini_get('display_errors');
?>
3、ini_get_set():获取所有配置选项的值:
(1)若有参数,则仅返回指定拓展的选项:
<?php
echo '<pre>';
print_r(ini_get_all("pcre"));
echo '</pre>';
?>
(2)若没有参数,获取所有配置选项的值:
<?php
echo '<pre>';
print_r(ini_get_all());
echo '</pre>';
?>
4、ini_restore( ):恢复指定的配置选项到它的原始值:
ini_restore('html_errors');