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

在HTML5移動(dòng)應(yīng)用中挖掘XSS漏洞

安全 漏洞
現(xiàn)在使用HTML5開(kāi)發(fā)移動(dòng)APP越來(lái)越受歡迎。HTML5不僅開(kāi)發(fā)效率高,而且可以跨平臺(tái),代碼重用性也很高。Zoho(全球第一大在線軟件提供商,總部位于美國(guó))是一個(gè)有著1300萬(wàn)用戶的HTML5郵件系統(tǒng),我打算挖挖他們的漏洞。

Linus(@_zulln)是一位有著15年漏洞挖掘經(jīng)驗(yàn)的瑞士黑客,本文就是他寫(xiě)的。

在HTML5移動(dòng)應(yīng)用中挖掘XSS漏洞

現(xiàn)在使用HTML5開(kāi)發(fā)移動(dòng)APP越來(lái)越受歡迎。HTML5不僅開(kāi)發(fā)效率高,而且可以跨平臺(tái),代碼重用性也很高。Zoho(***大在線軟件提供商,總部位于美國(guó))是一個(gè)有著1300萬(wàn)用戶的HTML5郵件系統(tǒng),我打算挖挖他們的漏洞。

尋找Html和Javascript代碼

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

在HTML5移動(dòng)應(yīng)用中挖掘XSS漏洞

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

在HTML5移動(dòng)應(yīng)用中挖掘XSS漏洞

翻了幾下之后我發(fā)現(xiàn)mailDetail.html是用來(lái)顯示郵件內(nèi)容的,這里有一個(gè)漏洞非常有趣。

讀了代碼,懂了代碼結(jié)構(gòu)之后,發(fā)現(xiàn)它調(diào)用了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變量(應(yīng)該是郵件內(nèi)容),你會(huì)發(fā)現(xiàn)javascript代碼中沒(méi)有對(duì)數(shù)據(jù)做任何轉(zhuǎn)義操作,所以,如果有任何轉(zhuǎn)義或者安全操作,都只能是在服務(wù)端做的,或者在java代碼中做的。

確定郵件內(nèi)容是否做過(guò)安全處理

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

我在apk 包中加入了如下幾個(gè)payload:

結(jié)果如下:

在HTML5移動(dòng)應(yīng)用中挖掘XSS漏洞

前兩個(gè)payload被正確處理了,但是第三個(gè)payload(我事先對(duì)數(shù)據(jù)做了url編碼)中顯示了一個(gè)<尖括號(hào)。

貌似后臺(tái)有一個(gè)黑名單,如果時(shí)間足夠,這些黑名單肯定可以被繞過(guò),但是我對(duì)手工fuzzing已經(jīng)無(wú)感了,所以我走了另外一條路。

逆向APK

我沒(méi)有寫(xiě)過(guò)apk,所以我決定尋找webview相關(guān)的代碼來(lái)讀,當(dāng)我找到從java傳遞數(shù)據(jù)到html的代碼的時(shí)候,我被webView.loadUrl絆倒了,這明顯可以執(zhí)行javascript代碼呀:

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

很明顯zoho使用了跟上面類似的代碼,才使得前面用url編碼過(guò)得數(shù)據(jù)正確地顯示出來(lái)。

通過(guò)使用dex2jar將apk逆向?yàn)?jar文件,我使用JD-GUI閱讀這些jar文件,我搜索了setContent函數(shù)(之前提到的javascript函數(shù)),

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

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

總結(jié)

zoho使用了webview.loadurl方法來(lái)調(diào)用setContent方法,這告訴我們什么?用這種方式打開(kāi)uri,里面的 javascript就會(huì)被執(zhí)行,任何pct-encode ugo的代碼都會(huì)被當(dāng)做正常代碼來(lái)執(zhí)行。

下面這些代碼很容易理解

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

問(wèn)題很明顯,通過(guò)在郵件中的任意地方包含如下的payload,就可以在郵件客戶端中執(zhí)行任意javascript代碼:

%22-alert%281%29-%22

在我將這個(gè)漏洞報(bào)告給zoho幾天過(guò)后,他們?cè)贕oogle Play上發(fā)布了新版,并且我收到郵件被告知已經(jīng)有其他人給zoho報(bào)告了這個(gè)漏洞。

我覺(jué)得這個(gè)漏洞非常有趣,其他很多APP可能會(huì)有很多相似的漏洞。不過(guò)在使用HTML開(kāi)發(fā)的應(yīng)用中尋找漏洞比在web中尋找漏洞要難一些。讓我們一起挖洞拯救世界,讓互聯(lián)網(wǎng)更安全吧!

責(zé)任編輯:藍(lán)雨淚 來(lái)源: FreeBuf
相關(guān)推薦

2011-05-11 12:59:18

HTML5

2011-11-28 13:15:25

HTML5移動(dòng)應(yīng)用

2011-08-29 17:27:47

HTML 5交互移動(dòng)應(yīng)用

2011-05-25 09:34:30

HTML5cssjavascript

2015-05-13 10:04:36

ionicHtml5

2011-12-12 10:08:39

jQuery MobiHTML5

2014-10-21 17:34:11

HTML5移動(dòng)設(shè)計(jì)

2012-06-05 10:48:23

2014-12-22 15:02:48

HTML5移動(dòng)應(yīng)用開(kāi)發(fā)

2011-11-28 10:03:29

HTML5移動(dòng)應(yīng)用

2012-02-23 10:28:43

AppCanHTML5移動(dòng)應(yīng)用

2012-02-20 13:45:26

HTML5移動(dòng)開(kāi)發(fā)程序

2013-10-09 09:10:28

移動(dòng)應(yīng)用開(kāi)發(fā)NativeHybrid

2010-07-28 08:41:17

HTML5Web移動(dòng)應(yīng)

2012-03-07 10:02:35

AppCanHTML5移動(dòng)應(yīng)用

2015-07-03 11:07:39

HTML5移動(dòng)Web

2011-12-28 15:32:46

HTML5移動(dòng)App

2012-05-29 09:23:23

HTML5移動(dòng)應(yīng)用框架jQTouch

2012-01-18 14:38:10

HTML5移動(dòng)應(yīng)用

2014-03-18 09:20:17

HTML5移動(dòng)開(kāi)發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲一区二区三区久久久 | 99re热这里只有精品视频 | 麻豆精品久久 | 视频一区二区在线观看 | 欧美在线观看黄色 | 97视频在线观看网站 | 精品国产乱码久久久久久牛牛 | 亚洲高清免费观看 | 久久久久久国产 | 欧美一区二区三区国产 | 极品粉嫩国产48尤物在线播放 | 成人不卡视频 | 超碰3 | 毛色毛片免费看 | 成人亚洲网站 | 中文字幕视频在线观看 | 婷婷久久综合 | 午夜成人免费视频 | 亚洲一区二区电影网 | 成人啊啊啊 | 午夜一区| 日韩成人在线观看 | 欧美日韩成人在线 | 欧美亚洲在线视频 | 黄色永久免费 | 热久久久久 | 国产视频中文字幕 | 精品1区2区| 日韩精品久久久久久 | 久久一视频| 一区二区久久电影 | 国产精品中文字幕一区二区三区 | 久久aⅴ乱码一区二区三区 亚洲国产成人精品久久久国产成人一区 | 亚洲精品视频在线看 | 在线观看亚洲精品 | 国产精品久久久久久久久久久久久 | 欧美成人a∨高清免费观看 色999日韩 | 五月天婷婷丁香 | 日韩伦理一区二区三区 | 91九色porny首页最多播放 | 一区二区在线不卡 |