某攻防演练期间遇到的shuipfcms的RCE审计过程

  • A+
所属分类:代码审计

本文首发于奇安信攻防社区

社区有奖征稿


· 基础稿费、额外激励、推荐作者、连载均有奖励,年度投稿top3还有神秘大奖!

· 将稿件提交至奇安信攻防社区(点击底部 阅读原文 ,加入社区)


点击链接了解征稿详情


背景

在某次授权的攻防演练项目中遇到了目标使用shuipfcms系统,接着对shuipfcms进行本地搭建后代码审计,最终获取目标权限。

思路介绍

  1. 某一处泄露Authcode

  2. 利用Authcode加密cloud_token

  3. thinkphp缓存getshell

代码分析

Authcode泄露

在shuipf/Application/Attachment/Controller/AdminController.class.php:37

某攻防演练期间遇到的shuipfcms的RCE审计过程

swfupload函数是不需要鉴权就可以直接访问到的,可以看到红色箭头处,当我们的密钥不对的时候,会直接打印出系统的AuthCode。

如图所示:

某攻防演练期间遇到的shuipfcms的RCE审计过程

我们得到这个AuthCode后可以干什么呢?

cloud_token解密

在shuipf/Application/Api/Controller/IndexController.class.php:17

某攻防演练期间遇到的shuipfcms的RCE审计过程

这里我们POST进来一个token,然后调用authcode函数进行解密:

某攻防演练期间遇到的shuipfcms的RCE审计过程

当key为空的时候,就会用authcode来解密了。

而这个CLOUD_USERNAME默认是没设置的,属于云平台的配置选项,所以默认条件下,这个地方的解密是用authcode来解密的。

上文已经泄露了authcode,所以这里解密后的内容也是我们可控的了。

然后看一下解密后的操作:

某攻防演练期间遇到的shuipfcms的RCE审计过程

调用了一个S函数,这个是TP3内置的缓存操作函数。这里的键值是getTokenKey函数的返回值,跟进一下:shuipf/Libs/System/Cloud.class.php:161

某攻防演练期间遇到的shuipfcms的RCE审计过程

OK,这个值还是比较好计算的。

thinkphp缓存getshell

然后看一下缓存的处理:

shuipf/Core/Library/Think/Cache/Driver/File.class.php:120

某攻防演练期间遇到的shuipfcms的RCE审计过程

首先是文件名的生成方式,第一个红色箭头处,跟进:

某攻防演练期间遇到的shuipfcms的RCE审计过程

这里的DATA_CACHE_KEY默认为空,不用管,但是$this->options[‘prefix’]是有的。看一下生成方式:

某攻防演练期间遇到的shuipfcms的RCE审计过程

某攻防演练期间遇到的shuipfcms的RCE审计过程

就是三个长度的随机字母加一个下划线。这个就比较有难度了需要猜测和爆破了。

然后就是一个写入反序列化数据的操作。

我在本地测了一下,数据像这样:

某攻防演练期间遇到的shuipfcms的RCE审计过程

成功写入了webshell。但是实战中的前缀需要爆破,win不区分大小写,会很快,linux则稍微麻烦一点。比如我本地是rDe_。

利用过程

首先我们发送报文获取authcode:

某攻防演练期间遇到的shuipfcms的RCE审计过程

然后我们生成token发送:

某攻防演练期间遇到的shuipfcms的RCE审计过程

响应报文中有验证通过就证明成功了。然后我们就需要找到我们的缓存文件了。
这次比较幸运,目标有列目录的漏洞。

然后我们访问缓存文件即可成功getshell。

某攻防演练期间遇到的shuipfcms的RCE审计过程

注:zc.com解析为127.0.0.1为本地环境

END



【版权说明】本作品著作权归带头大哥所有,授权补天漏洞响应平台独家享有信息网络传播权,任何第三方未经授权,不得转载。



某攻防演练期间遇到的shuipfcms的RCE审计过程
带头大哥

一个神秘而优秀的补天白帽子


敲黑板!转发≠学会,课代表给你们划重点了

复习列表





某客户关系管理系统代码审计


硬核黑客笔记-不聪明的蓝牙锁


Celery Redis未授权访问利用


漏洞验证框架的构思与实现


施耐德PLC认证绕过漏洞分析


Chromium issue 1187403 分析

某攻防演练期间遇到的shuipfcms的RCE审计过程


分享、点赞、在看,一键三连,yyds。
某攻防演练期间遇到的shuipfcms的RCE审计过程

点击阅读原文,加入社区,获取更多技术干货!

本文始发于微信公众号(洞见网安):某攻防演练期间遇到的shuipfcms的RCE审计过程

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: