顯示具有 xss 標籤的文章。 顯示所有文章
顯示具有 xss 標籤的文章。 顯示所有文章

12/19/2006

JavaEye 掛掉了


還蠻驚訝的,剛剛發現到 JavaEye出現這個畫面。

情況如下
当你访问JavaEye网站的时候,位于JavaEye服务器和你的浏览器中间的某个路由器在返回页面中植入如下代码
也就是說某個 router 會幫你把 response page 植入一個 XSS 的 script,簡直防不慎防。儘管我們可以寫很好的 HTML Filter ,但是掌控權不在你手上就沒輒了。唉,身為 Ruby on Rails 愛好者,我不希望這個優質的 Ruby on Rails 討論區垮掉呀。祝 JavaEye 及早解決問題。

解決方式除了原本網頁所說的
或者您也可以临时采取以下手段避免被感染: 编辑C:\Windows\system32\drivers\etc\hosts,加入一行:127.0.0.1 cool.47555.com
如果網站管理者希望網站早點起來,還有一個狠一點的作法。既然這個 XSS 只對於 IE 發作,可以在 controller/application.rb 加入
if request.env['HTTP_USER_AGENT'] == ' 瀏覽器的判斷'
加以 filter 掉 IE 的 request。相信 JavaEye 的客群應該都有自備 Firefox 可以使用,在這關鍵時刻先撐過再說。

PS.
User Agent 列表





Safari Mozilla/5.0 (Macintosh; U; PPC Mac OS X; zh-tw) AppleWebKit/418.9.1 (KHTML, like Gecko) Safari/419.3
Firefox MACMozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv 1.8.1) Gecko/20061027 Firefox/2.0 (lzyc)
Firefox Windows Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv 1.8.1) Gecko/20061010 Firefox/2.0
Opera 9 Opera/9.02 (Windows NT 5.1; U; zh-tw)
IE 7 Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
IE 6 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)


11/22/2006

HTML Filter 3: XSS

講了那麼多 HTML Filter 的例子 ,例子2,回到一個問題?如果照著之前的程式,有沒有辦法防範 XSS ?我現在給的答案是
不容易
為什麼?難道 Rails 那麼爛?錯了,看看這個表吧,當你的站遇到 Extra dot for absolute DNS 這種攻擊。
<IMG """><SCRIPT>alert("XSS")</SCRIPT>">
我們發現,有太多玩法可以放 XSS,而濾掉特定 tag 方式幾乎行不通,因為我們還是希望開放某些有用的 tag 像是 a 或是 img。但是我們可以減少這種可能發生率
  1. 使用 white list filter ,盡量少用 black list,whitelist 就是僅僅開放某些 tag ,blacklist 就是僅僅關閉某些 tag。我之前的 html filter 就是 white list 的。
  2. href 跟 src 裡面要檢查 javascript 的欄位
  3. 如果沒必要開放 tag ,盡量使用 h 通殺
延伸閱讀
  1. XSS 筆記
  2. XSS 列表