phpinfo信息利用总结
本文抄的,就当总结的知识库
system
获取具体版本,可以用来提权
extension_dir
php扩展的路径
http_x_real_ip
直接获取真实ip,无视代理、cdn。顺便说下HTTP_X_FORWARDED_FOR
的区别,HTTP_X_FORWARDED_FOR
会记录代理过程且可伪造
DOCUMENT_ROOT
web根目录
_FILES[‘x’]
临时文件路径, LFI+phpinfo -> RCE
allow_url_include
远程文件包含,但是一般不会开启
asp_tags
php标签有4种形式,如果这个选项不开启的话(一般默认不开启),使用asp的标签是不会解析的。
这里math1as师傅写了一篇user.ini
+asp_tags
绕过webshell检测的文章a way to bypass php tags check
实际就是通过向其中添加php_value asp_tags On
并上传.htaccess
和.user.ini
来bypass。
原理是:
1 |
|
注意: 在PHP 7已经完全移除了这种标签。
Short_open_tag
还是标签的问题,允许?>这种形式,并且<?=等价于<? echo
disable_functions和disable_classes
禁用函数列表:
1 |
|
绕过方式
- 记得Seay代码审计里说过
dl()
函数(需要enable_dl开启)
1 |
|
- 编译php时如果加了-–enable-pcntl选项,就可以使用pcntl_exec()来执行命令。PHP>4.2.0
1 |
|
- 利用ImageMagick漏洞绕过disable_function(应该是要组件与扩展都有具体没测试)
https://www.waitalone.cn/imagemagic-bypass-disable_function.html
利用环境变量LD_PRELOAD来绕过
win系统组件
1 |
|
magic_quotes_gpc
魔术引号,它是用来实现addslshes()和stripslashes()这两个功能的,对SQL注入进行防御。用了addslshes()
除非是有编码问题要不然是不存在注入的。
open_basedir
将用户可操作的文件限制在某目录下
绕过方式
https://www.leavesongs.com/PHP/php-bypass-open-basedir-list-directory.html
- 利用DirectoryIterator + Glob 直接列举目录(linux)
1 |
|
- realpath列举目录
利用realpath对传入路径的回显不同加上通配符进行列举。本地环境linux就没有进行测试。
1 |
|
首先设置open_basedir为当前目录,并枚举d:/test/目录下的所有文件。将错误处理交给isexists函数,在isexists函数中匹配出目录名称,并打印出来。
- SplFileInfo::getRealPath列举目录
1 |
|
还有GD库imageftbbox/imagefttext列举目录bindtextdomain暴力猜解目录,基本也都是要暴力破解,效率比较低。
参考:
PHP绕过open_basedir列目录的研究
php5全版本绕过open_basedir读文件脚本
绕过open_basedir读文件脚本
扩展
imagick
漏洞影响ImageMagick 6.9.3-10之前的版本,包括ubuntu源中安装的ImageMagick
详情参考:
ImageMagick 漏洞利用方式及分析
ImageMagick远程代码执行漏洞分析
libxml
libxml 2.9以前的版本默认支持并开启了外部实体的引用,服务端解析用户提交的 xml 文件时未对 xml 文件引用的外部实体(含外部普通实体和外部参数实体)做合适的处理,会导致XXE。
memcache
redis
session
Session.upload_progress 是PHP5.4的新特征。
1.序列化处理器不一致导致对象注入。
详情:session反序列化
2.session.upload_progress加本地文件包含=getshell
xdebug
Xdebug命令执行
Xdebug: A Tiny Attack Surface
Xdebug
Xdebug 攻击面在 PhpStorm 上的现实利用
非预期解法三
GOPHER
利用 Gopher 协议拓展攻击面
首先要支持gopher协议,然后找到一个能执行curl会话的参数,构造gopher格式的payload以post格式去执行反弹shell。
fastcgi
https://www.leavesongs.com/PENETRATION/fastcgi-and-php-fpm.html#php-fpmfastcgi
通过fastcgi传入环境变量,设置
1 |
|
将执行的代码放在body中执行任意代码。
OPCACHE
域&用户
Phpinfo页面还能看到当前域,当前登录用户