熱點推薦:
您现在的位置: 電腦知識網 >> 電腦常識 >> 正文

解讀IE8RC1中改進版本的XSS過濾器

2013-11-23 14:26:36  來源: 電腦常識 
  微軟公司於日發布了IE RC以下是IE RC中XSS過濾器功能的改進以及bug修復

  ·根據系統所在區域強化URL過濾器

  包含某些字節序列的URL能夠在某些地區通過Beta 過濾器例如位於中國的系統以下格式的URL就能繞過過濾器

   %A<script>alert();</script>

  該過濾器在URL通過正則表達式引擎之前對URLEncoding進行解碼 在原本的xA字節後面加上xC字節(<)能夠使MultiByteToWideChar 失效這是因為在中國和其他地方 XA xC不是有效的多字節字符在這種情況下這些失效能夠聯合起來使正則表達式匹配不能區分大小寫更糟糕的是在正則表達式代碼的後節點 xA xC序列將被解譯為單一的多字節字符因此<字符將不會從輸入內容中被發現相應的啟發式也不會檢測到XSS

  新發布的IE RC讓正則表達式代碼將所有輸入內容作為單個字節串來處理在默認字符代碼(可以是多字節)中沒有字符

  ·HTTP響應中的NULL將導致處理器忽略對大塊HTTP響應數據

  相關緩沖區類別是代碼中的revd以解決此問題

  ·增加保護功能以抵御涉及PHP的stripslashes函數攻擊情況

  PHP的stripslashes 功能能夠刪除輸入內容中的反斜線(它也可以用單一反斜線取代雙反斜線)對於PHP開發者而言經常在輸出字符串前呼叫 stripslashes函數在這些情況下如果輸出內容啟動了服務端的XSS跨站腳本漏洞漏洞仍然可以被濫用盡管有IE XSS過濾器

  以下是XSS Filter Architectural Overview(XSS過濾器架構概覽)一文中所討論到的示例

  上面討論的解碼過程是很靈活的也可以為不同網絡平台制品進行解碼必要的話該過濾器可以生成額外的簽名(根據相同輸入數據的不同的解譯)例如由於不合式的URLEncoded字符可能被不同的網絡平台進行不同的處理因此過濾器必須能夠建立適當的簽名

  這說明了新功能的表現該過濾器現在可以生成額外簽名必要時能夠為輸入內容的不同解譯進行過濾這些新簽名旨在彌補PHP的stripslashes函數功能的不足之處

  似乎現在大家都不推薦使用PHP的神奇引號如果是因為神奇引號功能而使用PHP代碼的stripslashes函數功能那麼就要預想到stripslashes在網絡的使用將會下降

  ·增加overlong UTF 服務器的保護功能

  與上面討論的PHP函數Stripslashes變化相類似如果在輸入中鑒定出超長的UTF序列我們現在可以生成並處理額外簽名

  雖然超長的UTF已經在RFC 中明確禁止了但在web服務器平台還不是特別普遍還不能解決我們代碼中的這個攻擊矢量

  ·增強對防止注入FORM和ISINDEX保護功能

  雖然總的來說微軟沒有阻止通用HTML注入不過微軟對這兩個可以啟動與攻擊情況(注入腳本攻擊)類似的因素已經提高了警惕

  ·OBJECT標簽的CODETYPE屬性現在與TYPE屬性一樣

  OBJECT標簽的CODETYPE屬性能夠提供和TYPE屬性一樣的功能IE RC這兩個屬性是平起平坐的

  ·一般性能改善

  例如預驗證功能更夠避免某些情況下正則表達式對性能的影響


From:http://tw.wingwit.com/Article/Common/201311/24533.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.