• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Web應用進行XSS漏洞測試(3)

    發表于:2015-04-22來源:uml.org.cn作者:火龍果軟件點擊數: 標簽:網絡測試
    1. 當再度將表單提交時,存儲的內容將會變成轉義后的值。 2. 當使用 JavaScript 操作表單元素,需要使用到表單元素的值時,必須考慮到值可能已經被轉義

      1. 當再度將表單提交時,存儲的內容將會變成轉義后的值。

      2. 當使用 JavaScript 操作表單元素,需要使用到表單元素的值時,必須考慮到值可能已經被轉義。

      HTML文本為動態內容

      例子

    &lt;b&gt; 歡迎:&lt;?= $welcome_msg?&gt;&lt;/b&gt;
    攻擊XSS輸入
    &lt;script&gt;evil_script()&lt;/script&gt;
    將動態內容替換
    將$welcome_msg 替換為惡意 XSS 輸入:
    &lt;b&gt;歡迎:&lt;script&gt;evil_script()&lt;/script&gt;&lt;/b&gt;

      分析

      在 HTML 正文背景下,< > 字符會引入 HTML 標記,& 可能會認為字符實體編碼的開始,所以需要將 < > & 轉義

      解決方案

      為簡潔起見,直接使用 htmlspecialchars()將 5 種 HTML 特殊字符轉義,如:

    &lt;b&gt;歡迎:&lt;?= htmlspecialchars($welcome_msg,, ENT_NOQUOTES)?&gt;&lt;/b&gt;

      URL的值為動態內容

      Script/Style/Img/ActiveX/Applet/Frameset… 等標記的 src 或 href 屬性如果為動態內容,必須確保這些 URL 沒有指向惡意鏈接。

      例子1

    &lt;script src=&lt;?= "$script_url&gt;"&gt;
    攻擊XSS輸入
    http://evil.org/evil.js
    將動態內容替換
    將$script_url替換為惡意 XSS 輸入:
    &lt;script src="http://evil.org/evil.js"&gt;

      例子2

    &lt;img src=”&lt;?= $img_url&gt;”&gt;
    攻擊XSS輸入
    javascript:evil_script()
    將動態內容替換
    將$img_url替換為惡意XSS輸入:
    &lt;img src=” javascript:evil_script()”&gt;

      分析

      一般情況下盡量不要讓 URL 的值被用戶控制。如果用戶需要自己定義自己的風格及顯示效果,也不能讓用戶直接控制整個 URL 的內容,而是提供預定義好的風格供用戶設置、裝配,然后由后臺程序根據用戶的選擇組合成安全的 URL 輸出。

      字符集編碼

      瀏覽器需要知道字符集編碼才能正確地顯示網頁。如果字符集編碼沒有顯式在 content-type 或meta 中定義,瀏覽器會有算法猜測網頁的字符集編碼。譬如<script>alert(document.cookie)</script> 的 UTF-7 編碼為:

    +ADw-script+AD4-alert(document.cookie)+ADw-/script+AD4-

      如果+ADw-script+AD4-alert(document.cookie)+ADw-/script+AD4-作為動態內容位于網頁的頂端并傳送到瀏覽器端,IE 會認為此網頁是 UTF-7 編碼,從而使網頁不能正常顯示。

      解決方案

      顯式定義網頁的字符集編碼,譬如

    &lt;meta http-equiv=content-type content="text/html; charset=UTF-8"&gt;

      動態內容為JavaScript事件處理函數的參數

      JavaScript 事件處理函數如 onClick/onLoad/onError/onMouseOver/ 的參數可能包含動態內容。

      例子

    &lt;input type="button" value="go to" onClick='goto_url("&lt;?= $target_url&gt;");'&gt;
    攻擊XSS輸入
    foo&amp;quot;);evil_script(&amp;quot;
    將動態內容替換
    HTML 解析器會先于 JavaScript 解析器解析網頁,將$target_url 替換為惡意 XSS 輸入:
    &lt;input type="button" value="go to" onClick='goto_url("foo");evil_script("");'&gt;
    動態內容位于 JavaScript 代碼段中

    原文轉自:http://www.uml.org.cn/Test/201407161.asp

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>