大家好,又见面了,我是你们的朋友全栈君。
PHP开放源码和跨越平台,PHP可以运行在WINDOWS和多种版本的LINUX上。它不需要任何预先处理而快速反馈结果,它也不需要mod_perl的调整来使您的服务器的内存映象减小。PHP消耗的资源较少,当PHP作为ApacheWeb服务器一部分时,运行代码不需要调用外部二进制程序,服务器不需要承担任何额外的负担。
$_SERVER['HTTP_ACCEPT_LANGUAGE']//浏览器语言
$_SERVER['REMOTE_ADDR'] //当前用户 IP 。
$_SERVER['REMOTE_HOST'] //当前用户主机名
$_SERVER['REQUEST_URI'] //URL
$_SERVER['REMOTE_PORT'] //端口。
$_SERVER['SERVER_NAME'] //服务器主机的名称。
$_SERVER['PHP_SELF']//正在执行脚本的文件名
$_SERVER['argv'] //传递给该脚本的参数。
$_SERVER['argc'] //传递给程序的命令行参数的个数。
$_SERVER['GATEWAY_INTERFACE']//CGI 规范的版本。
$_SERVER['SERVER_SOFTWARE'] //服务器标识的字串
$_SERVER['SERVER_PROTOCOL'] //请求页面时通信协议的名称和版本
$_SERVER['REQUEST_METHOD']//访问页面时的请求方法
$_SERVER['QUERY_STRING'] //查询(query)的字符串。
$_SERVER['DOCUMENT_ROOT'] //当前运行脚本所在的文档根目录
$_SERVER['HTTP_ACCEPT'] //当前请求的 Accept: 头部的内容。
$_SERVER['HTTP_ACCEPT_CHARSET'] //当前请求的 Accept-Charset: 头部的内容。
$_SERVER['HTTP_ACCEPT_ENCODING'] //当前请求的 Accept-Encoding: 头部的内容
$_SERVER['HTTP_CONNECTION'] //当前请求的 Connection: 头部的内容。例如:“Keep-Alive”。
$_SERVER['HTTP_HOST'] //当前请求的 Host: 头部的内容。
$_SERVER['HTTP_REFERER'] //链接到当前页面的前一页面的 URL 地址。
$_SERVER['HTTP_USER_AGENT'] //当前请求的 User_Agent: 头部的内容。
$_SERVER['HTTPS']//如果通过https访问,则被设为一个非空的值(on),否则返回off
$_SERVER['SCRIPT_FILENAME'] #当前执行脚本的绝对路径名。
$_SERVER['SERVER_ADMIN'] #管理员信息
$_SERVER['SERVER_PORT'] #服务器所使用的端口
$_SERVER['SERVER_SIGNATURE'] #包含服务器版本和虚拟主机名的字符串。
$_SERVER['PATH_TRANSLATED'] #当前脚本所在文件系统(不是文档根目录)的基本路径。
$_SERVER['SCRIPT_NAME'] #包含当前脚本的路径。这在页面需要指向自己时非常有用。
$_SERVER['PHP_AUTH_USER'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。
$_SERVER['PHP_AUTH_PW'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。
$_SERVER['AUTH_TYPE'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型if('/'==DIRECTORY_SEPARATOR){
$server_ip=$_SERVER['SERVER_ADDR'];
}else{
$server_ip=@gethostbyname($_SERVER['SERVER_NAME']);
}
echo $server_ip;/**
* 获取服务器端IP地址
* @return string
*/
function get_server_ip(){
if(isset($_SERVER)){
if($_SERVER['SERVER_ADDR']){
$server_ip=$_SERVER['SERVER_ADDR'];
}else{
$server_ip=$_SERVER['LOCAL_ADDR'];
}
}else{
$server_ip = getenv('SERVER_ADDR');
}
return $server_ip;
}
echo get_server_ip();这一部分非常非常重要
(1)语法:int phpinfo(void);
他的返回值是一个整数
(2)使用方式:列如新建一个.php文件vi test.php
输入:<?php phpinfo(); ?>
来看一下泄漏了哪些比较敏感的信息。 1.++绝对路径(_SERVER[“script_FILENAME”])++ 找到phpinfo()页面可以直接找到网站的绝对路径,对于写shell和信息搜集是必不可少的。 ep1:(PHP $_SERVER[‘SCRIPT_FILENAME’] 与 FILE)
<?php
echo 'SCRIPT_FILENAME 为:',$_SERVER['SCRIPT_FILENAME'];
echo '<br />';
echo '__FILE__ 为:',__FILE__;
?>上述测试代码拷贝至 test.php 并访问该文件(http://localhost/test.php),得到如下结果:
SCRIPT_FILENAME 为:E:/web/html/php/test.php
__FILE__ 为:E:\web\html\php\test.php 2.++支持的程序++
可以通过phpinfo()查看一些特殊的程序服务,在没有思路的情况下,可以着重找一下ssrf
3.++泄漏真实ip(_SERVER[“SERVER_ADDR”]或SERVER_ADDR)++
4.++泄漏缓存文件地址(_FILES[“file1”])++ 向phpinfo() post一个shell可以在_FILES[“file1”]中看到上传的临时文件,如果有个lfi,便可以直接getshell了。
5.++一些敏感配置++ allow_url_include、allow_url_fopen、disable_functions、open_basedir、short_open_tag等等。 比如allow_url_include可用来远程文件包含、disable_functions用来查看禁用函数,绕过执行、查看是否开启open_basedir,用p牛的绕过open_basedir的方法有可能能读一些没权限的目录等等。
我们简单用图片说明一下



PS: 简单介绍一下安装过程
下载安装包后,直接双击安装即可,安装过程要你选择 Web Server 时,选择 Apache 2.x ,然后提示你是否 Restart Web Server,选择是,完成安装之前提示是否备份 php.ini ,点确定后安装完成。
Zend Optimizer 的加密作用
我们自己写一个php文件,里面就1行代码
<?php phpinfo(); ?>
把它保存为phpinfo.php,上传到服务器上,然后访问这个 PHP 文件。
如果看到里面有 Zend Optimizer 的版本信息。就说明服务器上支持 Zend Optimizer。版本信息一般是这样的:
with Zend Optimizer v版本号, Copyright (c) 1998-2007, by Zend Technologies
只要包含有 with Zend Optimizer,说明服务器支持 Zend Optimizer



phpinfo实在是一个很好的检验php环境的工具,大家如果遇到问题,不妨按照我们上面的,看看是不是哪些模块没加载上,如果访问phpinfo页面的时候变成了下载,那是你的php本身就没安好
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/154894.html原文链接:https://javaforall.cn