function confirmReset($token) { global $mainframe;
$db = &JFactory::getDBO(); $db->setQuery('SELECT id FROM #__users WHERE block = 0 AND activation = '.$db->Quote($token));
// Verify the token if (!($id = $db->loadResult())) { $this->setError(JText::_('INVALID_TOKEN')); return false; }
// Push the token and user id into the session $mainframe->setUserState($this->_namespace.'token', $token); $mainframe->setUserState($this->_namespace.'id', $id);
正確的修補方式應該是在資料庫中加上一個型態為 bit 的欄位,紀錄使用者是否有要求重設密碼。但是這樣的修補方式必須要更動到資料庫,而 Joomla 1.5.6 的修補方式只需要覆蓋一個檔案即可。我們認為 Joomla 這算是一個救火的修補方式,也期待在 Joomla 的下一個 major release 中,能夠以加上 bit 欄位的方式來修補這個問題。
看出端倪了嗎?知道上面連結或廣告的差異嗎?「Sponsored Links(贊助商連結)」、「Ads by Google(Google提供的廣告)」及google搜尋的結果,都是可以利用的,搜尋出來的網站可能就是釣魚網站。 我想十之八九都是很難分辨的,所以才會有一堆所謂的「網站信譽評等軟體」來幫你挑出已知有問題的網站;要特別注意的是有列出來的九成九是有問題,沒列出來的也有可能是有問題的,可以參考最後一段。
其實阿碼科技一年要去很多會議,但是大部分是參展,不單純是參加。可是我發現參展時我就比較不能專心聽演講,因為總是有 VIP 客戶會來 booth,那我就必須要在攤位「站台」。自己當講師的時候就更慘了,通常我都最後一分鐘還在做投影片。Black Hat / DEFCON 我們明年才會擺攤位,所以我今年就比較輕鬆些,可以享受專心聽演講的樂趣!不過這些會議跑多了,有經驗的講師一年中講的都大同小異,沒有經驗的講師,講的我又聽不太下去,有時也會覺得浪費時間。 Jeff Moss (aka Dark Tangent)是 Black Hat / DEFCON 駭客年會的創辦人與主席,每年的會上,他都會接受媒體的採訪。他今年的採訪,主要談到了地下經濟的成熟,對於駭客年會的影響。以下是訪問的影片:
在影片中 Jeff 談到,其實這幾年他的會議收到的投稿,品質有逐年下滑的趨勢。去年他覺得可能是現在資安會議多了,大家很多地方可以投,但是後來研究其他會議的內容發現,也並沒有,那究竟原因是為什麼呢?
Rod 講了很多美國政府的歷史與政府在資安方面的歷史,基本上我覺得就是幫政府建立形象啦,表示美國政府從電報的年代就很懂資安與情報的重要。我對美國政府的歷史沒有興趣,我對駭客的歷史比較有興趣,但是我覺得 Rod 的加入對布希政府在形象上一定是一大加分,因為 Rod 感覺很有業界經驗,不會讓外界覺得政府都閉門造車。
Rod 講了他認為目前資安難做的原因,我非常的認同。他說,有些球類,進攻難,防守易,例如足球,所以分數都不高(幾比幾);有些球類,則是進攻容易,防守難,例如籃球,所以分數都很高(可以破百)。資安比較像籃球;事實上在資安裡面,防守比攻擊要難太多太多了,這也就是資安難做的原因。
另外 Rod 探討了一些我們在業界常探討的資安的投資報酬率問題。感覺他有觀念,但是畢竟他之前不在資安產業,探討的東西都還太淺了些。以下是兩張投影片,基本上是說,如果 x 軸是資安的投資,y 軸是因為資安投資而減低的損失,那麼需要找到投資報酬率最高的點。但是 Rod 你說用一條 45 度的線跟曲線取交點,是這樣嗎?我高中畢業很久了,博班資格考也沒考微積分,但是我怎麼直覺覺得,要分析要看此曲線斜率,所以要做一下一次微分後分析...
這個題目就不翻譯了,基本上整個演講在說一件事:Web 上的攻擊,如果加上各種不同的編碼方式,那麼穿透率幾乎可以達 100%,沒有任何 Web 防火牆可以阻擋。這是指 Web 防火牆設定成利用黑名單的情況下,如果花時間設白名單的話,一樣可以阻擋,可是一般稍微有規模的站,我看到大部分都是用黑名單方式,因為設白名單是很繁瑣的事情,需要找到好的廠商才行。
講到這裡,其實我深深覺得資安業,找對公司比找對產品重要多了。不論是源碼檢測或 Web 防火牆,如果賣方只是想塞產品給您,那麼買了再好的,牌子在大的產品也沒有用,一樣會失敗,最後還是會發生資安事件。如果找對好的 partner,有心服務客戶,長期經營,技術能量也夠,那即使用免費的開放源碼 ModSecurity 做 Web 防火牆,一樣能設定到讓您高枕無憂。其實對方有沒有心做服務,還是只想塞產品,還有對方的技術團隊有沒有實力,通常很快就能看出來。
GET /index%41.html HTTP/1.1
GET /index%2541.html HTTP/1.1 (double percent)
GET /index%%34%31.html HTTP/1.1 (double nibble)
GET /index%%341.html HTTP/1.1 (first nibble)
GET /index%4%31.html HTTP/1.1 (second nibble)
然後如果再利用 2-byte or 3-byte UTF-8 編碼的話,變化又更多了。
但是這整個演講的內容其實對我來說一點都不新,這些編碼來穿透 Web 防火牆的方式大概四五年前很多書還有 paper 都已經介紹得很完整了。整理起來,整個演講的重點就兩個:
一、由於 UTF-8,攻擊字串幾乎有無限種編碼方式。
二、攻擊可以分層的編碼,像上述例子,一層給 web server 解,一層給 SQL server 解。或穿插 URI % encoding 或 UTF-8 encoding、HTML decimal entity encoding、SQL server encoding(char())等混合使用。
這次在 Black Hat / DEFCON,在會後的一些 meeting 中,我發現一個很有趣的現象,就是在偵測網站掛馬方面,「使用者」(大銀行,大企業,軍方,情報單位)的功力,有時反而比廠商甚至講師更強。探討下來,因為網站掛馬太嚴重了,可是廠商都沒有好的解決方案,號稱可以測到的,其實都是用靜態分析或黑名單方式,沒有辦法即時,辨識率也偏低,所以這一年下來,「使用者」只好 DIY,自己利用 Caffeine Monkey(paper、投影片、程式碼)或 spidermonkey 來偵測(SANS最近也玩了一下),但是就如同 SANS 的 Daniel Wesemann 說的:「But SpiderMonkey is only a JavaScript engine - it doesn't emulate the browser and doesn't even have a "document" or "location" object...」。Caffeine Monkey就是建構在Spidermonkey 之上。SpiderMonkey 是 Mozilla 的 javascript 執行器,但是不是一個瀏覽器,還缺很多環境,Caffeine Monkey 一方面設法補足,一方面增加了一些自動偵測的技巧。
Billy 今年的 talk,則是針對諸多以 SpiderMonkey 為基礎的偵測方式做破解,列了一打以上的破解方式,不過基本上可以粗分為兩類:
一、歐洲最大 IT 媒體之一的 The Register 報的 二、「神秘」這兩個字--最近資安界已經很久沒有「神秘」的攻擊了... 三、「Web 攻擊」--我對 Web 安全的議題特別有興趣,而 The Register 也還蠻專業的,沒有寫成「Web 病毒」。沒錯,Web 上的威脅大部分不是病毒,所以用攻擊(attack)來形容通常比較貼切,所以似乎記者還算專業。
好,爬起來看看寫些什麼。小標題:「No, MACs are not immune(抱歉,MAC 並不免疫)」。
OK,文章基本上在講,最近有一種 Web 上的攻擊,綁架使用者的剪貼簿,不論你貼上什麼東西,等到貼出來,都會變成一個惡意的連結。報導中:
一、列舉了一堆受害者上網的留言(這裡這裡這裡這裡) 二、報導說這些受害的使用者有用 Windows 系統的也有用 MAC OS X 系統的,雖然以上四篇都是用 Firefox,但是不排除其他瀏覽器也可能受攻擊。
<textarea name="prettyprint" class="javascript"> <button onClick="IE_ClipBoard();">Copy to Clipboard</button> <script> function IE_ClipBoard() { if (window.clipboardData) { window.clipboardData.setData("Text","Hello from Wayne!"); } } </script>
看一下郵件標頭(Mail Header)好了... 主旨:msnbc.com - BREAKING NEWS: COP: FAMILY LIVING IN FEAR 主旨:msnbc.com - BREAKING NEWS: Star Trek star dies at age 79 如果不會看郵件標頭(Mail Header)的可以參考這網站,把郵件標頭複製貼上即可。哦...不知郵件標頭在哪呀...哪就參考這囉。
不止要有 sandbox,還需要有整個 DOM(Document Object Model);或乾脆說,要有整個瀏覽器的環境。很多人想偷懶,用 spidermonkey 來做(SANS最近也玩了一下),但是就如同 SANS 的 Daniel Wesemann 說的:「But SpiderMonkey is only a JavaScript engine - it doesn't emulate the browser and doesn't even have a "document" or "location" object...」。