研究: 防治XSS攻擊

雖然說跨站的程式碼攻擊並不是什麼新東西,甚至國內不少知名網站過去都有傳過類似的安全漏洞,
不過最近看到自己有在用的twitter被連續XSS攻擊
網路上有人詳細的說明攻擊過程,根本是擋了又被破解連續好幾次,一個知名網站簡直就是被一個小鬼玩弄...
雖然這邊只是個默默無聞的小網站,不過看到這種攻擊不免自己有警覺
所以這幾天其實在研究這類攻擊的防範方法...

有長輩說這根本是杞人憂天,這種默默無聞的小網誌放它100年應該也不會有人來攻擊...
不過實際上,這邊剛啟用沒多久,大約去年中的時候,f2blog爆出xmlrpc有SQL injection可以上傳任意檔案的安全漏洞,這邊cache目錄裡面居然就被不知名的人放了一個執行怪指令的php檔,讓人大吃一驚,從此以後對安全性更加警覺...
所以對這種東西最好不要太鐵齒,以免後悔莫及...
f2blog-xmlrpc-vulnerable.jpg
←這是去年10月份的備份檔
去年5月底爆出漏洞,6月隨即被放了檔案,因為檔案藏在不會去注意到的cache裡面,一直在3,4個月後才被我發現

跨網站指令碼 - 維基百科

XSS攻擊簡單的說,就是攻擊者在有漏洞的網頁上貼一段javascript程式(或連結),該程式就會竊取訪問該網頁使用者儲存的資料(主要是瀏覽器的cookie資訊),後果是,id和密碼被冒用,如果被竊取的是管理員的帳號,那更是\(^o^)/...

所以從XSS攻擊的特性,可以從兩方面來防範:

1.防止被貼上攻擊程式
一般的方法是用字串過濾法,把可能會造成攻擊的字元(例如html的前後括號,query string的問號,等號,and號)過濾掉,加上程式內建的過濾函式(PHP的htmlspecialchars等)...不過自從twitter的攻擊事件之後發現,過濾字串根本就不太管用,因為字串可以經過多層編碼,擋掉之後只要稍微變化一下就很容易被突破,這就是這次twitter出現好幾波攻擊的狀況...總之這是考驗網頁的程式設計功力

2.防止cookie被竊取
以餅乾本身的特性:交換的資料是限定在特定的網域
Quote:
Cookies can also be limited in scope to a specific domain, subdomain or path on the web server which created them.
所以有機密性的資料,例如登入,後台控制介面這些東西跟一般output出來資訊的網域分離應該是防止資料竊取不錯的方法...
當然這也要看setcookie怎麼用的

...つづく
trackbackTrackback: http://blog.snow-sugar.net/trackback.php?tbID=621&extra=01839f
taggedTags: XSS 資安
Comments: 1 |Trackback: 0 | Read: 3060 | Print | Download
add nookmarks Bookmarks
Share to:Google BookmarksYahoo! My WebWindows LiveDiggDel.icio.usfacebookfacebookredditslashdotfurltechnoratiMyShare樂多網路書籤UDN共享書籤HemiDemi貼到funPLivedoor ClipFC2 BookmarkHatena::Bookmark百度搜藏
referers Link from
  以下連結並未逐一檢查,點選前請自行留意右方評價!
31 Yahoo search: xss攻擊
7 Yahoo search: xss攻擊
7 Yahoo search: XSS攻擊
7 Yahoo search: xss
6 Yahoo search: xss攻擊
comment scribe [ 2009/04/23 22:16 Home | Reply | Edit Delete View ]
avatars 其實只要秉持著來自使用者的資料都不是安全的 (即是把使用者當賊) 來設計,
多半可以防範一些簡單的攻擊。

前幾年很紅的SQL Injection,現在Lib都會提供PreparedStatement,可以依賴他們有效阻止。
有洞了他們的工作小組自然會行動,你的程式碼一樣不必改。
這次的XSS比較Tricky,因為它使用了CSS的expression來套入JS,防止最終解是乾脆Noscript,但這不實際。
只好減少使用者的資料出現在網頁上的位置。(像自定CSS風險就很大)
或者是看有沒有類似PreparedStatement的Anti-XSS版Lib可以用。

>>f2blog爆出xmlrpc有SQL injection可以上傳任意檔案的安全漏洞
這個比XSS恐怖多了
  • 1 
pannya
Write New Comment
Name:(*) Password:
Website: Email:
Validation:(*) Validation Image [Reload] Option:
Content:(*)