Z-blog前台无需登录包含漏洞一枚

漏洞概要

缺陷编号:WooYun-2015-098417

漏洞标题:Z-blog前台无需登录包含漏洞一枚

相关厂商:Z-Blog

漏洞作者:′雨。

提交时间:2015-02-27 14:59

公开时间:2015-06-02 15:00

漏洞类型:文件包含

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

Tags标签:

漏洞详情

披露状态:

2015-02-27: 细节已通知厂商并且等待厂商处理中
2015-03-04: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2015-04-28: 细节向核心白帽子及相关领域专家公开
2015-05-08: 细节向普通白帽子公开
2015-05-18: 细节向实习白帽子公开
2015-06-02: 细节向公众公开

简要描述:

听说这个是大厂商? -.-
前台无需登录包含漏洞, 大概翻了一下 没看到好像能上传图片的地方。
没细看。 就这样了把。

详细说明:

http://**.**.**.**/zblogphp/ 下载地址问题出现在zb_install/index.php中我还注意看了一下 安装完成后 是写的啥提示

提示的是这个 并没有提示用户要删除这个目录 而且也不会自动删除这个文件。所以基本都是存在的。

其实漏洞就是出现在这里。

看这函数就知道了 到处包含,虽然限制了必须为.php后缀的 但是因为没对POST转义 所以我们可以截断后面的.php咯。大概找了一下 没找到能够上传图片的地方 这里我就自己新建一个jpg了把。 来测试测试就好。新建一个 yu.jpg

$zbp->LoadLanguage('system','',$zbloglang);$zbp->LoadLanguage('zb_install','zb_install',$zbloglang);因为他这里load了两个 当满足第一个的时候第二个就不会满足 就会出错。所以我们直接fputs一个文件就行。在根目录下。

漏洞证明:

修复方案:

这里应该对post来的zbloglang进行限制in_array('en','zh' 之类的 限制只能包含那几个文件

漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2015-06-0215:00

厂商回复:

最新状态:

2015-03-09:非常感谢!确认晚了,着手处理中。

2015-03-09:非常抱歉,由于邮箱出现问题导致我们发现漏洞的时候已经晚了,进而平台自动忽略了本漏洞。近日将联系乌云对邮箱进行修改,非常感谢您的帮助!漏洞补丁已下发,详见http://blog.zblogcn.com/2015/03/09/79/。

评价

  1. 2010-01-01 00:00 浅蓝 白帽子 | Rank:131 漏洞数:20)

    好厉害

  2. 2010-01-01 00:00 10457793 白帽子 | Rank:239 漏洞数:20)

    社工管理员加友情链接然后把logo发给他!

  3. 2010-01-01 00:00 大亮 白帽子 | Rank:267 漏洞数:28)

    雨神,我要给你生个猴子。。

  4. 2010-01-01 00:00 小飞 白帽子 | Rank:38 漏洞数:4)

    恩 好新奇的挖洞地点
    对于这种逻辑顺序的洞我一直没感觉呢 学习了

  5. 2010-01-01 00:00 http://www.wooyun.org/corps/Z-Blog 白帽子 | Rank:0 漏洞数:0)

    这个漏洞的利用价值似乎不太高,因为如果调用图片上传接口的会强制重命名,只有后台附件上传才会保存文件名。但是在这里显示出的对危险参数的检测才是不足之处。第二次犯这种错误(前次在ASP,同样是语言包) ,定当吸取教训。

  6. 2010-01-01 00:00 ′雨。 白帽子 | Rank:1086 漏洞数:88)

    @Z-Blog 啥重命名? zbloglang? 有点没看懂你说的 我默认配置测试的啦。

  7. 2010-01-01 00:00 http://www.wooyun.org/corps/Z-Blog 白帽子 | Rank:0 漏洞数:0)

    @′雨。 是说上传入口啦

  8. 2010-01-01 00:00 Hero 白帽子 | Rank:41 漏洞数:5)

    厂商萌萌的啦

  9. 2010-01-01 00:00 铁蛋火车侠 白帽子 | Rank:112 漏洞数:13)

    @′雨。 这个是大厂商吗? 包含access_log不行?

  10. 2010-01-01 00:00 打酱油的小男孩 白帽子 | Rank:0 漏洞数:0)

    请问现在厂商在LoadLanguage函数里面加了过滤:$default = str_replace(array('/','\\'),'',$default);这样能绕过包含吗?

  11. 2010-01-01 00:00 zsx 白帽子 | Rank:0 漏洞数:3)

    @打酱油的小男孩 我记得我这里重写过了

  12. 2010-01-01 00:00 你大爷在此 百无禁忌 白帽子 | Rank:0 漏洞数:0)

    我就想知道知道能不能包含错误日志来getshell