0x01 前言

问了一下群里的小伙伴
MetInfo系统中隐藏的一处旧插件导致的ssrf - 图1
得到了这样的答案,于是就有了此水文

最近关注的网站推了很多的文章,其中一篇是关于MetInfo_v6.1.0 的任意文件读取漏洞
而造成漏洞的文件就是readfile 可控

这个漏洞在经过3次的绕过以后终于给删除掉了。。。

也引起了我的关注,下载了源码初步查看了一番以后搜索了一波也是发现了一点问题。
MetInfo系统中隐藏的一处旧插件导致的ssrf - 图2

如上图这两处引起了我的注意,我们任意选择一个进行查看讲解

0x02 文件跟踪

文件:MetInfo_v6.1.0\app\app\ueditor\php\Uploader.class.php
MetInfo系统中隐藏的一处旧插件导致的ssrf - 图3
get_headers这里是验证资源是否存在的,不存在就不走下面了,所以这里可以用来判断端口,例如81端口不存在那么他这里就会直接报错了
$this->stateInfo = $this->getStateInfo(“ERROR_DEAD_LINK”);

这个时候我还不清楚的$this->fileField 的值是向哪里获取的=-=
又搜索了一下。

MetInfo系统中隐藏的一处旧插件导致的ssrf - 图4

需要注意的是:$type == “remote” 才能进入$this->saveRemote();流程引起漏洞触发。

搜索一下

MetInfo系统中隐藏的一处旧插件导致的ssrf - 图5
打开文件:MetInfo_v6.1.0\app\app\ueditor\php\action_crawler.php
打开文件以后,虽然引入了Uploader.class.php 但是没有引入$CONFIG所以直接调用代码会报错,那么就继续找引入

搜索一下

MetInfo系统中隐藏的一处旧插件导致的ssrf - 图6
打开文件:MetInfo_v6.1.0\app\app\ueditor\php\controller.php

MetInfo系统中隐藏的一处旧插件导致的ssrf - 图7

0x03 漏洞测试

利用的话,ssrf嘛你可以扫描扫描端口咯。
我这里的话,简单说明利用一下

MetInfo系统中隐藏的一处旧插件导致的ssrf - 图8

MetInfo系统中隐藏的一处旧插件导致的ssrf - 图9

0x04 尴尬

在写完文章之后,我以为我发现了个百度编辑器的通用ssrf,可是当我去github下载最新版的百度编辑器继续查看时,发现最新版已经修复了,提交人是15年wooyun的一个大佬,就呀呀呀呀呀就好尴尬。