通過使用postMessage()的方法,我可以輕松的將消息從第一個(gè)URL發(fā)送到第二個(gè)URL.
我們可以通過點(diǎn)擊”send message“的按鈕來進(jìn)行驗(yàn)證。
盡管加載在第一個(gè)URL中的iframe與其并不同源,但通過postMessage() 即可進(jìn)行信息傳遞。
現(xiàn)在我們來看一些postMessage()使用過程中可導(dǎo)致應(yīng)用出現(xiàn)漏洞的例子:
case1.
發(fā)送方代碼:
當(dāng)發(fā)送者把targetOrigin規(guī)定為通配符”*“時(shí),將會(huì)導(dǎo)致未知的信息被陌生的接收方(窗口)接收到。原因是從接收窗口傳來的消息任何人都可以再加載一個(gè)iframe來進(jìn)行監(jiān)聽。因此在進(jìn)行敏感數(shù)據(jù)的傳輸時(shí),使用通配符是一個(gè)十分錯(cuò)誤的決定。
針對(duì)此問題最好的解決方法就是在發(fā)送時(shí)添加具體的目標(biāo)字段,如下所示:
Case2.
接收窗口代碼:
在上面這段代碼中可以看到,我們是直接接收發(fā)送方的消息對(duì)其進(jìn)行處理,并不檢驗(yàn)是否來自發(fā)送方。
但檢查消息的來源無疑是十分重要的,這樣可以防止消息來自未經(jīng)授權(quán)的發(fā)送者。
因此,我們只需要在代碼中加入對(duì)發(fā)送方的驗(yàn)證,這一問題就可解決了。代碼如下:
通過檢驗(yàn)event.origin,來進(jìn)行驗(yàn)證。
Case3.
在這一過程中,發(fā)送方和接收方都應(yīng)該驗(yàn)證正在傳送的.消息。如果數(shù)據(jù)插入到HTML DOM中時(shí)并沒有進(jìn)行驗(yàn)證,那么應(yīng)用很有可能遭受到基于DOM的跨站腳本攻擊。
由下面這段代碼可以看出,當(dāng)應(yīng)用程序接收到攻擊者發(fā)來的惡意信息,并已經(jīng)插入到HTML DOM使用innerHTML屬性時(shí),其顯得異常脆弱。
發(fā)送方:
接收方:
執(zhí)行上面這段代碼,可導(dǎo)致在接收窗口出現(xiàn)XSS。
解決這一問題最簡(jiǎn)單的方法就是在給元素分配數(shù)據(jù)值時(shí)使用 textContent 而不是innerHTML.
小編推薦閱讀國(guó)產(chǎn)工具PKAV HTTP Fuzzer滲透測(cè)試助手最新發(fā)布
閱讀FireEye:11.2%的移動(dòng)APP仍存在FREAK漏洞
閱讀惠普漏洞:惠普ArcSight企業(yè)安全系列產(chǎn)品曝高危安全漏洞
閱讀騰訊、360各顯神通,分別秒殺IE、Flash、PDF項(xiàng)目
閱讀蘋果Mac OS X系統(tǒng)被發(fā)現(xiàn)存在DLL劫持漏洞
閱讀金融行業(yè)平臺(tái)的針對(duì)性防御滲透測(cè)試
閱讀D-Link(友訊)路由器曝遠(yuǎn)程文件上傳及命令注入漏洞(已發(fā)布安全更新)
閱讀Win10將使用P2P進(jìn)行系統(tǒng)更新,引發(fā)安全擔(dān)憂
閱讀美國(guó)最大的無卡ATM網(wǎng)絡(luò)即將推出,從此告別刷卡!
閱讀谷歌應(yīng)用漏洞泄漏超過28萬條私人WHOIS數(shù)據(jù)
閱讀使命召喚、魔獸世界、英雄聯(lián)盟……專攻游戲的勒索軟件TeslaCrypt
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請(qǐng)發(fā)郵件[email protected]
湘ICP備2022002427號(hào)-10 湘公網(wǎng)安備:43070202000427號(hào)© 2013~2025 haote.com 好特網(wǎng)