基本信息
PHP 版本信息
我们知道 PHP 不同版本之间在很多方面都有着差异,当然我么重点关注的肯定是一些函数参数以及一些安全性机制的差异。特别是 PHP5 和 PHP7 之间的差异尤其的大,因此知道了 PHP 的确切版本是我们需要做的第一步。
系统的版本信息
系统无非是两种 Linux 和 Windows ,这在我们后期命令执行的时候或者是 bypass disable_function 的时候有用。
Loaded Configuration File(配置文件位置)
这一栏表明了 php.ini 这个 php 配置文件的位置,在有文件读取的情况下可以进行读取,在渗透中还是很有帮助的。
Registered PHP Streams(支持的流)
这个在文件包含、反序列化还有一些关键的 bypass 的时候非常有用
Registered Stream Filters(支持的流过滤器)
这个同样在文件包含、反序列化还有一些关键的 bypass 的时候非常有用
Core(核心)
这个栏目里面有非常多重要的配置信息,我们可以简单的看一下:
allow_url_fopen&allow_url_include
文件包含必看选项之一
disable_functions
命令执行、代码执行必看选项之一
错误提示
调试过程中经常使用的错误提示在没有关闭的情况下放入生产环境是不堪设想的
enable_dl
该指令仅对 Apache 模块版本的 PHP 有效。 你可以针对每个虚拟机或每个目录开启或关闭 dl() 动态加载 PHP 模块。
关闭动态加载的主要原因是为了安全。通过动态加载,有可能忽略所有 open_basedir 限制。 默认允许动态加载,除了使用 安全模式。在安全模式,总是无法使用 dl()。
extension_dir
和 dl() 配合使用效果更好
include_path
PHP 用include()函数包函文件时的默认路径
open_basedir
这个选项设置了文件读取的时候的目录限制
short_open_tag
判断服务器是不是支持短标签,这在写 shell 的时候很有帮助
phar
文件包含还有反序列化重点关注
SESSION
-
session.save_handler:session保存形式。默认为files
-
session.serialize_handler:定义用来序列化/反序列化的处理器名字。默认使用php
-
session.save_path:设置session的存储路径
-
session.upload_progress.enabled:将上传文件的进度信息存在session中。默认开启。
这几个选项在文件包含的时候以及反序列化的时候非常的有用
PHP Variables
$_SERVER[‘PATH’]
这个是 windows 下特有的,能显示出系统的所有环境变量
$_SERVER[‘SCRIPT_FILENAME’]
这个是最常用,也是最有效的一个办法,找到phpinfo()页面可以直接找到网站的绝对路径,对于写shell和信息搜集是必不可少的。
$_SERVER[‘SERVER_ADDR’]
显示该网站的真实的 ip 地址,有时候通过phpinfo()泄漏的ip可以查查旁站、c段什么的,直接无视cdn。
原文始发于微信公众号(晨曦安全团队):【Web渗透】PHPINFO的敏感信息
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论