成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在HTML5移動應用中挖掘XSS漏洞

安全 漏洞
現在使用HTML5開發移動APP越來越受歡迎。HTML5不僅開發效率高,而且可以跨平臺,代碼重用性也很高。Zoho(全球第一大在線軟件提供商,總部位于美國)是一個有著1300萬用戶的HTML5郵件系統,我打算挖挖他們的漏洞。

Linus(@_zulln)是一位有著15年漏洞挖掘經驗的瑞士黑客,本文就是他寫的。

在HTML5移動應用中挖掘XSS漏洞

現在使用HTML5開發移動APP越來越受歡迎。HTML5不僅開發效率高,而且可以跨平臺,代碼重用性也很高。Zoho(***大在線軟件提供商,總部位于美國)是一個有著1300萬用戶的HTML5郵件系統,我打算挖挖他們的漏洞。

尋找Html和Javascript代碼

首先我從Google Play上下載了APK,用解壓軟件打開。

在HTML5移動應用中挖掘XSS漏洞

assets文件夾中有很多html文件,html文件和javascript文件要比java文件讀起來易懂很多。

在HTML5移動應用中挖掘XSS漏洞

翻了幾下之后我發現mailDetail.html是用來顯示郵件內容的,這里有一個漏洞非常有趣。

讀了代碼,懂了代碼結構之后,發現它調用了setContent方法:

function setContent(contentToSet,margin){
    document.body.style.marginTop = margin + "px";
    document.body.style.marginBottom = "10px";
    setBaseURL();
    document.getElementById('mailcontentid').innerHTML = "";
    handleContentForMailThread($('mailcontentid'), contentToSet);
    androidResponse();
    }
function handleContentForMailThread(contentEl,value) {
    var ind = value.indexOf("<blockquote");// NO I18N
    if(ind < 0) {
    	addContentToElement(contentEl,value);
        return;
    }
    else
    {
        // removed 54 lines here for readability
    }
    }
function addContentToElement(contentEl,value){
	contentEl.innerHTML = value;
	addListener();
	}

如果你跟蹤contentToSet變量(應該是郵件內容),你會發現javascript代碼中沒有對數據做任何轉義操作,所以,如果有任何轉義或者安全操作,都只能是在服務端做的,或者在java代碼中做的。

確定郵件內容是否做過安全處理

最簡單的辦法就是在setContent函數的開始未知加入payload代碼,比如alert(contentToSet),然后打包重簽名。

我在apk 包中加入了如下幾個payload:

結果如下:

在HTML5移動應用中挖掘XSS漏洞

前兩個payload被正確處理了,但是第三個payload(我事先對數據做了url編碼)中顯示了一個<尖括號。

貌似后臺有一個黑名單,如果時間足夠,這些黑名單肯定可以被繞過,但是我對手工fuzzing已經無感了,所以我走了另外一條路。

逆向APK

我沒有寫過apk,所以我決定尋找webview相關的代碼來讀,當我找到從java傳遞數據到html的代碼的時候,我被webView.loadUrl絆倒了,這明顯可以執行javascript代碼呀:

webView.loadUrl("javascript:initialize(" + myNumber + ");");

很明顯zoho使用了跟上面類似的代碼,才使得前面用url編碼過得數據正確地顯示出來。

通過使用dex2jar將apk逆向為.jar文件,我使用JD-GUI閱讀這些jar文件,我搜索了setContent函數(之前提到的javascript函數),

this.webView.loadUrl("javascript:setContent(" + JSONObject.quote(this.content) + "," + i + ")");

正如你看到的,zoho使用了類似的代碼。

總結

zoho使用了webview.loadurl方法來調用setContent方法,這告訴我們什么?用這種方式打開uri,里面的 javascript就會被執行,任何pct-encode ugo的代碼都會被當做正常代碼來執行。

下面這些代碼很容易理解

// this line of code:location.href = 'javascript:setContent("%22-alert%281%29-%22")';// is the same as this:location.href = 'javascript:setContent(""-alert(1)-"")';

問題很明顯,通過在郵件中的任意地方包含如下的payload,就可以在郵件客戶端中執行任意javascript代碼:

%22-alert%281%29-%22

在我將這個漏洞報告給zoho幾天過后,他們在Google Play上發布了新版,并且我收到郵件被告知已經有其他人給zoho報告了這個漏洞。

我覺得這個漏洞非常有趣,其他很多APP可能會有很多相似的漏洞。不過在使用HTML開發的應用中尋找漏洞比在web中尋找漏洞要難一些。讓我們一起挖洞拯救世界,讓互聯網更安全吧!

責任編輯:藍雨淚 來源: FreeBuf
相關推薦

2011-05-11 12:59:18

HTML5

2011-11-28 13:15:25

HTML5移動應用

2011-05-25 09:34:30

HTML5cssjavascript

2015-05-13 10:04:36

ionicHtml5

2011-12-12 10:08:39

jQuery MobiHTML5

2011-08-29 17:27:47

HTML 5交互移動應用

2012-06-05 10:48:23

2014-10-21 17:34:11

HTML5移動設計

2014-12-22 15:02:48

HTML5移動應用開發

2011-11-28 10:03:29

HTML5移動應用

2012-02-23 10:28:43

AppCanHTML5移動應用

2010-07-28 08:41:17

HTML5Web移動應

2013-10-09 09:10:28

移動應用開發NativeHybrid

2012-02-20 13:45:26

HTML5移動開發程序

2014-03-18 09:20:17

HTML5移動開發

2015-07-22 16:44:51

HTML5優化

2012-05-29 09:23:23

HTML5移動應用框架jQTouch

2012-01-18 14:38:10

HTML5移動應用

2011-08-30 09:32:27

HTML5移動網站移動應用

2015-07-03 11:07:39

HTML5移動Web
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕色站 | www.亚洲精品| 99亚洲精品| 久在线精品视频 | 91精品国产高清一区二区三区 | 超碰成人免费 | 国产日产精品一区二区三区四区 | 成人 在线 | 免费观看毛片 | 一级视频在线免费观看 | h视频在线播放 | 欧美国产日韩在线观看成人 | 国产精品久久久久久久免费大片 | 国产福利视频 | 在线观看免费观看在线91 | 成人精品国产一区二区4080 | www.久久久久久久久久久久 | 精品国产欧美一区二区三区成人 | 日韩一区二区在线免费观看 | 国产乱码久久久 | 欧美成人黄色小说 | 国产精品久久久久久影视 | 午夜精品一区二区三区在线播放 | 国产精品免费av | 欧美日韩视频 | 中文成人在线 | av免费网站在线观看 | 欧美成人精品一区二区三区 | 国产精品免费一区二区 | 日本网站免费观看 | 日韩中文字幕一区 | 国产一区二区三区免费观看在线 | 午夜精品一区 | wwww.xxxx免费 | 97国产精品视频人人做人人爱 | 国产精品成人一区二区三区夜夜夜 | 亚洲精品一区二区三区中文字幕 | 日本精品一区二区三区四区 | 成人在线视频网站 | 九九热在线精品视频 | 天天看天天操 |