谈谈从phpinfo中能获取哪些值得注意的信息

phpinfo函数

phpinfo函数 PHP中提供了PHPInfo()函数,该函数返回 PHP 的所有信息,包括了 PHP 的编译选项及扩充配置、PHP 版本、服务器信息及环境变量、PHP 环境变量、操作系统版本信息、路径及环境变量配置、HTTP 标头、及版权宣告等信息。

其函数定义如下:

语法: int phpinfo(void);

返回值: 整数

函数种类: PHP 系统功能

例如新建一个php文件,在其中输入以下内容:

<?php phpinfo(); ?> 

所以phpinfo()想必对大家都最熟悉的了,在搭建环境之后都会随后写一个phpinfo()来测试环境是否正常,很多人测试完毕忘记删除就开始部署环境了,这就造成了一些敏感信息的泄漏。那么我们能从phpinfo()中获得哪些敏感信息呢?

php版本这种就不用说了,来看一下泄漏了哪些比较敏感的信息。

一、绝对路径(_SERVER[“SCRIPT_FILENAME”])

这个是最常用,也是最有效的一个办法,找到phpinfo()页面可以直接找到网站的绝对路径,对于写shell和信息搜集是必不可少的。

二、支持的程序

可以通过phpinfo()查看一些特殊的程序服务,比如redis、memcache、mysql、SMTP、curl等等如果服务器装了redis或者memcache可以通过ssrf来getshell了,在discuz中都出现过此类问题。如果确定装了redis或memcache的话,在没有思路的情况下,可以着重找一下ssrf

三、泄漏真实ip(_SERVER[“SERVER_ADDR”]或SERVER_ADDR)

有时候通过phpinfo()泄漏的ip可以查查旁站、c段什么的,直接无视cdn,百事不灵。

四、GOPHER

也算是ssrf一部分吧,或者说主要靠ssrf利用起来,如果支持gopher,ssrf便没有压力咯

五、fastcgi

查看是否开启fastcgi和fastcgi的版本,可能导致解析漏洞、远程命令执行、任意文件读取等问题

六、泄漏缓存文件地址(_FILES[“file1”])

向phpinfo() post一个shell可以在_FILES[“file1”]中看到上传的临时文件,如果有个lfi,便可以直接getshell了。

七、一些敏感配置

allow_url_include、allow_url_fopen、disable_functions、open_basedir、short_open_tag等等

比如allow_url_include可用来远程文件包含、disable_functions用来查看禁用函数,绕过执行、查看是否开启open_basedir,用p牛的绕过open_basedir的方法有可能能读一些没权限的目录等等。

此外还能获取一些环境信息,比如Environment中的path、log等

总结

暂时只想了这么多,欢迎留言补充,一定及时更新。以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助。

时间: 2017-03-26

phpinfo 系统查看参数函数代码

复制代码 代码如下: <?php /* +-------------------------------------------------------------------------- | B-Check v0.05 | ======================================== | 南方第三制作 | http://www.zndown.com | ======================================== | 探针官方:http://my.zn

在windows服务器开启php的gd库phpinfo中未发现

在windows服务器开启php的gd库时,使用cgi之后phpinfo()得到的结果中 Configure Command 中并没有出现gd. Configure Command 后显示的是: 复制代码 代码如下: 1 cscript /nologo configure.js "--enable-snapshot-build" "--disable-isapi" "--enable-debug-pack" "--without-mss

解析如何屏蔽php中的phpinfo()函数

我们配置php环境的时候往往都会写phpinfo():这个函数来测试php环境是否安装成功,但往往这个函数也会给系统带来安全隐患,那么如何让关掉这个函数呢?下面介绍一种方法:修改php.ini文件,在里面找到如下行, 复制代码 代码如下: disable_functions = ; This directive allows you to disable certain; functions for security reasons. It receives; a comma separated

怎么样可以把 phpinfo()屏蔽掉?

Q:怎么样可以把 phpinfo()屏蔽掉? A:路径:C:\winnt(or windows)\php.ini(NT和2000)C:\windows(95,98)  在 php.ini 配置文件里面有这个选项  disable_functions = ; This directive allows you to disable certain  ; functions for security reasons. It receives  ; a comma separated list of 

php实现屏蔽掉黑帽SEO的搜索关键字

相信很多站长遇到过这种情况:网站内的搜索功能被不良分子利用,通过在站内搜索框中不断搜索敏感关键词,产生一大批TITLE上带有敏感关键词的垃圾搜索结果页(如下图).由于Baiduspider对每个站点的抓取额是有限定的,所以这些垃圾搜索结果页被百度收录,会导致其它有意义的页面因配额问题不被收录,同时可能因百度处理垃圾页面而影响网站正常排名. 具体的参考百度官方的页面http://zhanzhang.baidu.com/college/articleinfo?id=117 我给大家一个方法 我的思路

在node.js中怎么屏蔽掉favicon.ico的请求

今天准备用node做个api出来,还没入门,遇到一个小问题,特在此记录一下! 在做路由模块的时候,发现控制台每次都会多输出一条favicon.ico的请求,对于这种又占资源,看着又碍眼的玩意,强迫症完全忍不了了,查了下代码,加了一行进去解决问题(没有技术含量,如果想笑话我的仁兄,请速速关闭浏览器)! 下面的代码是未更改前的路由,了解原理比什么都重要,对吧! function router (handle, pathname) { if (typeof handle[pathname] === '

分析nginx日志并屏蔽采集者ip(nginx屏蔽ip配置实例)

采集和防止采集是一个经久不息的话题,一方面都想搞别人的东西,另一方面不想自己的东西被别人搞走. 本文介绍如何利用nginx屏蔽ip来实现防止采集,当然也可以通过iptable来实现. 1.查找要屏蔽的ip 复制代码 代码如下: awk '{print $1}' nginx.access.log |sort |uniq -c|sort -n nginx.access.log 为日志文件, 会到如下结果,前面是ip的访问次数,后面是ip,很明显我们需要把访问次数多的ip并且不是蜘蛛的ip屏蔽掉,本例

外贸网站屏蔽中国IP访问的多种方法

大家都知道的原因,做外贸站,国人喜欢研究你的站,还总是帮你进行压力测试-- 首先想到要屏蔽中国IP就会是把中国IP库加入Nginx配置文件中,然后WEB服务器对比IP来达到屏蔽. 复制代码 代码如下: 在Nginx中加deny IP; 批量可以建立一个ip.conf的文件然后include ip.conf; 其次是通过IPtable要禁止中国IP段来达到屏蔽的目的. 以下是Iptable的Sh脚本: 复制代码 代码如下: #!/bin/bash # Block traffic from a sp

PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题

最近在设计一款产品,需要POST登录PHPWind,然而众所周知,PHPWind9(以下简称pw9)自身拥有安全策略,详情各位可以自己去phpwind官方论坛看.安全策略的存在会导致即便站长关闭验证码策略依然在登陆时会显示验证码(前提是该用户重试太多次). 要POST登录,并且不需要验证码,就得处理这个问题,然而官方并没有提供解决的方案,只能依赖自己处理. 首先要明白,phpwind不像众多简单的php程序一般只是简单的该页面代码放置于对应文件中,每一次访问都会调用wekit.php,再由wek

详解Python各大聊天系统的屏蔽脏话功能原理

突然想到一个视频里面弹幕被和谐的一满屏的*号觉得很有趣,然后就想用python来试试写写看,结果还真玩出了点效果,思路是首先你得有一个脏话存放的仓库好到时候检测,那么个人还是喜欢用列表,因为列表灵活使用扩展都很方便,有了脏话库我们在来想核心怎么屏蔽脏话,你要记得玩家输入的弹幕数据类型是什么首档其次是字符串如果没有特殊要求就它了,万变不离其中总是这几个数据结构嘛,有了字符串替换*号什么的都轻松许多了对吧,今天所聊的是完整的一套结构,为了让大家更清晰学会,我会拆分代码然后在组装起来讲,这样大家就会有

js实现屏蔽默认快捷键调用自定义事件示例

具体如何屏蔽更多的快捷键可以自行google搜索. 这里要说的是如何屏蔽后去执行自定义的事件. 这里为了方便使用的Kibo做例子,使用google搜索出来的结果一般都是javascript原生实现,很简单的,这里不做介绍. 这里是实现了在一个textarea中enter进行保存的例子,屏蔽掉了原来的回车事件. 代码如下: 复制代码 代码如下: //键盘监听 var areaKey = new Kibo($("#aac010")[0]); areaKey.down('enter',doS

JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法

每个人都讨厌广告.看电视.看电影.看优酷.看网页时,对满天飞的广告也是深恶痛绝.广告是一个不招人喜欢的东西.但是,对一个中小网站站长/博客主来说,广告几乎是唯一的能成支持网站/博客正常运转的资金来源.如果一个博客主,只是无私发布稿件,能坚持几年的,很少.大多数慢慢失去了热情. 火狐浏览器和谷歌浏览器里都有能够屏蔽页面给广告的插件,最有名的是AdBlock和AdBlock Plus.前几天,我做一个统计,看看浏览网站的用户中有多少人使用了AdBlock插件,发现这个数目竟然有总浏览人数的1/5.

PHP中error_reporting()函数的用法(修改PHP屏蔽错误)

今天学习CI框架过程中遇到个问题: A PHP Error was encountered Severity: Notice Message: Undefined variable: user 一般在默认的普通PHP文件中输出一个未定义声明的变量是不会报错误的,但在codeigniter框架下却要报错误,这对于想集成 添加 和 修改 页面于一体的"懒人"很不方便,由于是初学者开始还想怎么在代码中屏蔽这一错误提示呢.甚至用到了@,但听很多人都说@会大大降低性能-. 最后突然想到,是不是c