189 8069 5689

如何实现ThinkAdmin的漏洞复现

这篇文章给大家介绍如何实现ThinkAdmin的漏洞复现,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册虚拟主机、营销软件、网站建设、镇宁网站维护、网站推广。

0x00简介

ThinkAdmin是一套基于ThinkPHP框架的通用后台管理系统,ThinkAdmin 非常适用快速二次开发,默认集成 微信开发组件,支持微信服务号,微信支付,支付宝支付,阿里云OSS存储,七牛云存储,本地服务器存储。,ThinkAdmin的权限管理基于标准RBAC简化而来,去除了繁杂的节点管理,使得权限管理起来更简单,具体包含节点管理、权限管理、菜单管理、用户管理。

0x01漏洞概述

ThinkAdmin V6版本存在路径遍历漏洞。该漏洞主要是因为api中存在危险函数,且未作任何限制。未作任何认证可以直接调用api中此两危险函数。攻击者可利用该漏洞通过请求编码参数任意读取远程服务器上的文件。

0x02影响版本

ThinkAdmin版本小于 ≤ 2020.08.03.01

0x03漏洞名称及编号

CVE-2020-25540

ThinkAdmin 目录遍历/文件读取漏洞

0x04环境搭建

phpstudy2018+ThinkAdmin v6.0

Composer命令

1)安装Composer命令,phpstudy中PHP设置成7.1或以上版本,并把对应的文件夹放入环境变量path中

如何实现ThinkAdmin的漏洞复现

2)在phpstudy服务器中打开php.ini文件,找到extension=php_openssl.dll前面的分号去掉,意思是打开ssl扩展,目的是为了能在cmd命令中能进行访问

如何实现ThinkAdmin的漏洞复现

3)安装composer.phar,找到下载内容的地方,去下载当前最新版本的composer.phar,双击安装,不用勾选

下载地址https://getcomposer.org/Composer-Setup.exe

如何实现ThinkAdmin的漏洞复现

4)配置环境变量后自动选择了

如何实现ThinkAdmin的漏洞复现

然后一直下一步,安装完成

如何实现ThinkAdmin的漏洞复现

5)安装完成后在cmd命令行输入composer查看是否安装成功

如何实现ThinkAdmin的漏洞复现

6)设置阿里云 Composer 代理

由于国内访问Composer比较慢,建议设置阿里云Composer镜像,运行如下命令设置阿里云代理

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer

如何实现ThinkAdmin的漏洞复现

7)搜索下载ThinkAdminV6的漏洞版本到本地

如何实现ThinkAdmin的漏洞复现

8)进入ThinkAdmin目录进行安装

composer install

如何实现ThinkAdmin的漏洞复现

9)然后进config/database.php目录下修改配置文件,需要创建一个数据库

如何实现ThinkAdmin的漏洞复现

10)php进行运行 php think run

如何实现ThinkAdmin的漏洞复现

http://ip:8000打开页面

如何实现ThinkAdmin的漏洞复现

0x05漏洞复现

1.目录遍历

1.1 使用burp抓取首页的包,发送到Repeater模块构造数据包获取目录

如何实现ThinkAdmin的漏洞复现

1.2 在Repeater模块中把GET修改成POST,url修改成/admin.html?s=admin/api.Update/node,在下面输入rules=%5b%22%2f%22%5d //编码为url编码 解码为["/"]

如何实现ThinkAdmin的漏洞复现

1.3点击”Send”发送,可以看到返回包中带有目录列表了

如何实现ThinkAdmin的漏洞复现

注:要是没有返回列表可修改payload中的路径,然后使用url编码即可

2. 任意文件读取

2.1 我们在根目录下创建文件flag.txt,内容为flag{s4d6f54s}

如何实现ThinkAdmin的漏洞复现

2.2 在使用加密函数对flag.txt进行加密,使用php运行加密函数得到2u302p2v1a383c38文件名

如何实现ThinkAdmin的漏洞复现

2.3 访问下面链接即可读取到flag.txt(读其他文件同理)

http://127.0.0.1:8000/admin.html?s=admin/api.Update/get/encode/2u302p2v1a383c38

如何实现ThinkAdmin的漏洞复现

2.4 复制后面使用base64加密的一段字符串,解码出来就是flag.txt里的内容

如何实现ThinkAdmin的漏洞复现

0x06修复方式

1.升级到2020.08.03.01之后的版本

2.使用官方的临时修复方案

https://github.com/zoujingli/ThinkAdmin/issues/244

关于如何实现ThinkAdmin的漏洞复现就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


本文题目:如何实现ThinkAdmin的漏洞复现
网站链接:http://cdxtjz.cn/article/jgisds.html

其他资讯