用户
搜索
  • TA的每日心情
    无聊
    2018-12-1 01:22
  • 签到天数: 25 天

    连续签到: 1 天

    [LV.4]经常看看II

    i春秋-核心白帽

    Rank: 4

    18

    主题

    407

    帖子

    3

    魔法币
    收听
    0
    粉丝
    5
    注册时间
    2016-3-19
    发表于 2018-10-9 14:16:12 36357

    版本:Cscms v4.1.8 Release 20171206

    流程:

    开始在后台看到了这个页面:

    所以猜想上传处可能会出问题,所以直接看下该页面的源码怎么操作的:
    文件:\plugins\sys\admin\Setting.php 中的ftp_save()函数:

    那么依次看下$UP_Yype变量与write_file是否有过滤,拦截什么的.

    $UP_Type = $this->input->post('UP_Type', TRUE, TRUE);

    这套cms用了CI框架来开发的,这个post获取就是对单双引号进行了html实体编码,及对反斜杠的去掉。不影响我们输入php这类后缀。

    直接写入,没有任何安全操作。所以我们可以在刚那个更新配置中加入我们的php格式。

    $strs.="define('UP_Type','".$UP_Type."');  //上传支持的格式 \r\n";

    因为写入到了UP_Type常量中,所以可以直接搜索这个常量,看看那些地方调用了:

    看到不管前台后台所有的上传的检测都是使用了它,随便打开一个:
    \plugins\sys\admin\Upload.php 中的up_save()方法:

    这就是验证部分,可以看到我们全部可控,所以直接导致了上传php文件.


    漏洞证明:


    添加一个php格式,然后提交。
    然后随便点个音乐->添加音乐->上传图片->

    这个漏洞很鸡肋,因为前提是你要获得管理员帐号登录后台才能操作
    现在安装cms的时候大部分都是修改了后台登录地址的,后台帐号密码也会修改
    所以我说这个漏洞有点鸡肋...
    但是在这里还是谢谢你,给我们带来了一次不错的代码审计
    使用道具 举报 回复
    发表于 2018-10-9 16:29:06
    初来乍到01 发表于 2018-10-9 15:15
    这个漏洞很鸡肋,因为前提是你要获得管理员帐号登录后台才能操作
    现在安装cms的时候大部分都是修改了后台登 ...

    嗯嗯,所有需要登录后台的利用都很鸡肋,毕竟需要权限。参与活动不要在意这些细节。
    使用道具 举报 回复
    感谢分享
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册