某fishcms 后台存在任意文件删除+getshell

2019-05-18 约 1155 字 预计阅读 3 分钟

声明:本文 【某fishcms 后台存在任意文件删除+getshell】 由作者 这是一个睿智 于 2019-05-18 09:46:00 首发 先知社区 曾经 浏览数 18 次

感谢 这是一个睿智 的辛苦付出!

前言

这两天挑了款 cms 审计了一下。还是 tcl ,没审计出什么很厉害的洞。分享一下挖的思路

漏洞分析

找了一圈关键字,找到一处:

后台的删除幻灯片处:

我们看到有一句:

@unlink(APP_PATH . '..'. DS . $yfile);

$yfile 是哪里来的呢?

$yfile = str_replace($yuming['option_value'],'',$slide['slide_pic']);

$slide 是从数据库里查出来的。

临时跳一下,跳到 添加幻灯片 处。看看我们的 slide_pic 是怎么加进去的。

可以看到是获取了 slideshow 这个参数。这里并没有任何检查

我们再跳回 removeSlide 这个函数。

我们会发现在 unlink 前有个 if

if(!empty($yfile) && $this->isLegalPicture($slide['slide_pic'])){

没错,isLegalPicture 这个函数就是检查函数,这个函数大概做了两件事:

  1. 判断文件名后缀是否为图片(白名单
  2. 判断文件名是否带有 /data/

这里第二个条件,是要 dirname 含有 /data/,不能是 /data/a.jpg ,但可以是 /data/a/a.jpg

现在知道变量来源了,我们再精简一下代码,把关键代码剪出来:

$yfile = str_replace($yuming['option_value'],'',$slide['slide_pic']);
if($this->isLegalPicture($slide['slide_pic'])){
@unlink(APP_PATH . '..'. DS . $yfile);
}

没错,这里最大的问题就是 isLegalPicture 的传参 和 unlink 的传参不一致。

我们会发现上面有个 str_replace,他会把 $yuming['option_value'] 替换成

那么我能不能让 $yuming['option_value'] 变成一些特殊的值呢?

那么这个东西是什么呢?这玩意儿其实就是。

这里修改虽然前端有限制,但是挡不住我们万能的 bp(后端没有限制)。

现在我们就可以想想怎么利用了:

  1. 修改幻灯片为 /data/b/111.jpgapplication/install.lock/data/b/111.jpg
  2. 修改 站点域名/data/b/111.jpg
  3. 删除指定幻灯片

删除时把 /data/b/111.jpg 替换为空,就是 application/install.lock 了。

漏洞复现

首先 登陆后台,输入账号密码后可能会显示这个:

但是这里过滤不严,我们可以直接访问:/admin/Index/web.html

(首先我们要先抓到 修改幻灯片 和 删除幻灯片的包,因为我们修改了站点域名之后 jscss 会直接加载不出来。。。)

系统设置 => 网站信息 的包,然后 domain 参数改成:/data/b/111.jpg

此时的 options 表:

然后 修改幻灯片 的数据包中,把 slideshow 改为:/data/b/111.jpgapplication/install.lock/data/b/111.jpg

用刚刚抓到的删除包 repeater 一次就好了:

这时候我们再看的 application 目录就已经删掉了。但是如果我们想写 shell 我们还得把 application/.htaccess 删掉。

我们把 id=2 的 幻灯片改成图片:/data/b/111.jpgapplication/.htaccess/data/b/111.jpg

这里就不截图了。

删除之后:

然后我们就可以重新安装了:

这里我们不知道服务器的 mysql 账号密码的话,可能需要将 数据库服务器 的地址修改成网络上的,也可以是自己的 vps
然后把 数据库名 修改成:',eval($_GET[1]),'
其他的正常填,下一步。。

看看 application/database.php 文件:

总结

审了很久,也许是经验不太够(太菜),只审出了一个 laji 洞。

总结一下这个洞,大概就是传递的参数不同导致的,实际开发中还是不能太粗心,保证参数的统一。

关键词:[‘安全技术’, ‘漏洞分析’]


author

旭达网络

旭达网络技术博客,曾记录各种技术问题,一贴搞定.
本文采用知识共享署名 4.0 国际许可协议进行许可。

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now