前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >漏洞复现 | Discuz 7.2 反射型xss漏洞

漏洞复现 | Discuz 7.2 反射型xss漏洞

作者头像
TeamsSix
发布2019-09-24 18:00:04
1.6K0
发布2019-09-24 18:00:04
举报

一、下载源码进行环境搭建

1、先安装Ucenter

2、解决出现问题

安装好后,打开发现弹出以下界面

在Ucenter数据库下执行以下命令即可

DROP TABLE IF EXISTS uc_pms;# MySQL 返回的查询结果为空 (即零行)。
CREATE TABLE uc_pms (
pmid int(10) unsigned NOT NULL auto_increment,
msgfrom varchar(15) NOT NULL default '',
msgfromid mediumint(8) unsigned NOT NULL default '0',
msgtoid mediumint(8) unsigned NOT NULL default '0',
folder enum('inbox','outbox') NOT NULL default 'inbox',
new tinyint(1) NOT NULL default '0',
subject varchar(75) NOT NULL default '',
dateline int(10) unsigned NOT NULL default '0',
message text NOT NULL,
delstatus tinyint(1) unsigned NOT NULL default '0',
related int(10) unsigned NOT NULL default '0',
PRIMARY KEY(pmid),
KEY msgtoid(msgtoid,folder,dateline),
KEY msgfromid(msgfromid,folder,dateline),
KEY related (related),
KEY getnum (msgtoid,folder,delstatus)
)# MySQL 返回的查询结果为空 (即零行)。

二、漏洞演示漏洞POC地址:

http://127.0.0.1/Discuz/logging.php?action=logout&formhash=b1abb3e2&referer=';alert(document.domain);'

三、对漏洞进行白盒测试

1、referer字段

根据poc可以看出利用的字段是logging .php下的referer字段,打开看看

2、dreferer函数

可以看到referer字段由dreferer函数进行赋值,找到dreferer函数,判断dreferer是如何取rederer值的,可以在include/global.func.php文件中直接找到对应函数。

可以看到,因为$referer是我们传参的值,不为空,所以直接执行语句$referer = dhtmlspecialchars($referer);

这里dhtmlspecialchars方法是对我们传入的referer的值进行关键词过滤,在include/global.func.php中可以同样找到该函数:

核心部分是其中的str_replace进行的字符替换,可以看到主要对&、”、<、>进行替换处理,而对poc中的字符并未进行过滤

3、showmessage函数

在logging.php文件中26行可以看到showmessage函数对dreferer函数进行了调用

此时来include/global.func.php下查看一下showmessage函数代码

这个函数主要是构造$show_message内容,其中$url_forward就是我们传入的$referer的内容,$referer被直接构造在timeout里,最终赋值给$show_message, 而$show_message则最终会被插入到页面模板./forumdata/templates/1_1_showmessage.tpl.php中,而我们的payload也通过参数referer最终在页面展示。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、下载源码进行环境搭建
    • 1、先安装Ucenter
      • 2、解决出现问题
      • 二、漏洞演示漏洞POC地址:
      • 三、对漏洞进行白盒测试
        • 1、referer字段
          • 2、dreferer函数
            • 3、showmessage函数
            相关产品与服务
            日志服务
            日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档