Adminxe's Blog | 低调求发展 - 潜心习安全 ,技术永无止境 | 谢谢您对本站的支持,有什么问题或者建议请及时联系:点击这里给我发消息

PHP基础代码审计 1.1 常见的INI配置

代码审计 Adminxe 2125℃ 0评论

常见的INI配置:
(php.ini user.ini)

PHP的配置-语法

设置指令的格式:
directive = value
指令名(directive)是大小写敏感的!所以”foo=bar”不同于”FOO=bar”。
值(value)可以是:

  1. 用引号界定的字符串(如:”foo”)
  2. 一个数字(整数或浮点数,如:0, 1, 34, -1, 33.55)
  3. 一个PHP常量(如:E_ALL, M_PI)
  4. 一个INI常量(On, Off, none)
  5. 一个表达式(如:E_ALL & ~E_NOTICE)
    INI文件中的表达式仅使用:位运算符、逻辑非、圆括号:
    | 位或
    & 位与
    ~ 位非
    ! 逻辑非
    布尔标志用 On 表示打开,用 Off 表示关闭。
    一个空字符串可以用在等号后不写任何东西表示,或者用 none 关键字:
    foo =     ; 将foo设为空字符串
    foo = none  ; 将foo设为空字符串
    foo = “none” ; 将foo设为字符串”none”
    如果你在指令值中使用动态扩展(PHP扩展或Zend扩展)中的常量,那么你只能在加载这些动态扩展的指令行之后使用这些常量。
    httpd.conf ;;
    还可以在httpd.conf中覆盖php.ini的值,以进行更灵活的配置:
    php_value name value ;设置非bool型的指令,将value设为none则清除先前的设定
    php_flag name on|off ;仅用于设置bool型的指令
    PHP常量(如E_ALL)仅能在php.ini中使用,在httpd.conf中必须使用相应的掩码值。
    带”SYS”标志的指令只能在httpd.conf中的全局配置部分使用,
    带”ini”标志的指令不能在httpd.conf中使用,它们仅能用于php.ini中。

================================================

启用全局变量(容易导致变量覆盖):
register_globals = off
1.不方便阅读代码
2.变量之间互相覆盖,引起不必要的麻烦
3.安全问题,所以要设置为off。

短标签

short_open_tag = on
决定是否允许使用php代码开始标志的缩写形式().如果禁用了,必须使用php代码开始标志的完整形式().
也会影响到缩写形式<?,他和<? echo 等价 。
从php5.4起,<?= 总是可用的。

安全模式
safe_mode = off
控制一些php中的函数,比如system()
对一些函数进行了权限控制,不允许对某些关键性的文件的读取,比如/etc/passwd,默认php.ini是没有开启安全模式的
5.4后移除

安全模式下执行程序主目录

safe_mode_exec_dir = /var/www/html

这个目录可以执行

禁用类/函数

disable_classes = ,disable_functions = ,

disable_functions = opendir,readdir,scandir,fopen,unlink

设置上传及最大上传文件大小
file_uploads = on
upload_max_filesize=8M


文件上传临时目录
upload_tmp_dir =
上传临时文件保存的目录,需要可写,如果不设置,则采用系统临时目录。(/tmp、C:\Windows\temp)


用户访问目录限制
open_basedir = .:/tmp/
open_basedir能控制php脚本只能访问指定的目录,这样能够避免php脚本访问不应该访问的文件,一定程度上限制了phpshell的危害,
我们一般可以设置只能访问网站目录,表示允许访问当前目录(即php脚本文件所在之目录)和/tmp/目录,有效防止php木马跨站运行

print_r(scandir(dirname(FILE)));
print_r(scandir(dirname(FILE).”/../”));

错误控制信息
display_error =on

设置错误报告级别
error_reporting = E_All

错误日志

………………

魔术引号

php5.4.0移除

magic_quotes_gpc=on
magic_quotes_runtime=off

为GPC(Get/Post/Cookie)操作设置magic_quotes状态。当magic_quotes为on,所有的'(单引号)、”(双引号)、(反斜杠)
和NULL被一个反斜杠自动转义。

是否允许打开远程文件
allow_url_fopen = on
激活了URL形式的fopen封装协议使得可以访问URL对象例如文件。

是否允许包含远程文件

allow_url_include = off
本选项激活允许include,include_once,require,require_once等函数使用URL形式的fopen封装协议。
简单来说,可以包含远程文件。

转载请注明:Adminxe's Blog » PHP基础代码审计 1.1 常见的INI配置

喜欢 (4)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址