久久无码高潮喷水抽搐,极品馒头泬19p,久久人人爽精品玩人妻av,精品国产成人国产在线视,精品视频一区二区三区在线观看

網(wǎng)絡(luò)安全技術(shù) 再討論跨站腳本攻擊與防御

您當(dāng)前位置:首頁(yè) > 紅訊頻道 > 網(wǎng)絡(luò)技術(shù)

  • 紅軟基地 推薦
  • 2012-01-17
FBj紅軟基地

  你看,只要發(fā)現(xiàn)以javascript等腳本屬性的形式都會(huì)被過(guò)濾掉,失去了:的腳本代碼是起不了作用的!這樣完美了么?事實(shí)上Html屬性的值,注意是值而不是屬性本身是支持&#ASCii這種形式表示的,譬如上面的代碼可以換成這樣:FBj紅軟基地

 FBj紅軟基地

<img src="javascript:alert(/xss/)" width=100>FBj紅軟基地

  代碼又執(zhí)行了,呵呵!看來(lái)你漏掉了點(diǎn)什么哦,加上這個(gè)代碼吧!FBj紅軟基地

replace(str,"&","&")FBj紅軟基地

  行了,&失去它原來(lái)的意義了,用戶不能以其他方式表示Html屬性值了哦!等等,這樣的過(guò)濾真可以相信么?只要發(fā)現(xiàn)這種過(guò)濾的關(guān)鍵字機(jī)制,饒過(guò)就是簡(jiǎn)單的問(wèn)題了:FBj紅軟基地

<img src="javas cript:alert(/xss/)" width=100>FBj紅軟基地

  沒(méi)有javascript關(guān)鍵字了哦!注意中間那個(gè)是tab鍵弄出來(lái)的!關(guān)鍵字被拆分了哦!這是個(gè)很麻煩的問(wèn)題,很多人忘記了這些特殊的字符,呵呵!有人想到要過(guò)濾空格了,在過(guò)濾之前我們?cè)倏纯雌渌囊恍〇|西吧!也許我們現(xiàn)在所處的src屬性已經(jīng)無(wú)法利用了,但是我們依然可以產(chǎn)生自己的屬性或者事件機(jī)制哦!依然是可以執(zhí)行Html代碼的,首先說(shuō)說(shuō)事件機(jī)制吧:FBj紅軟基地

<img src="#" onerror=alert(/xss/)>FBj紅軟基地

  這樣依然可以執(zhí)行代碼的哦!明白問(wèn)題出在哪了,不是么?有的程序員仿佛明白了,注意我說(shuō)的是仿佛,動(dòng)網(wǎng)就是一個(gè)典型的例子,事件屬性不是要onerror么?很多人開(kāi)始用正則表達(dá)式了,發(fā)現(xiàn)關(guān)鍵的詞如onerror就會(huì)做轉(zhuǎn)換或者提示用戶不執(zhí)行,是不是沒(méi)有機(jī)會(huì)了呢?FBj紅軟基地
當(dāng)然不是的,事件只是讓代碼運(yùn)行的一種方法而不是所有的,可以定義事件了那么也就可以實(shí)現(xiàn)自己弄出自己的屬性了,試試下面的:
FBj紅軟基地

<img src="#" style="Xss:expression(alert(/xss/));">FBj紅軟基地

  呵呵,還是執(zhí)行了哦!在做關(guān)鍵字過(guò)濾之后有人發(fā)現(xiàn)是不是屬性之間分隔要用到空格,好,他們把空格堵死了(這樣認(rèn)為的人很多,呵呵)!將空格轉(zhuǎn)成&nbsp;是個(gè)很普遍的方法?是么?甚至還可以讓別人無(wú)法關(guān)鍵字拆分,不要太自信了,試試下面的代碼看看如何:FBj紅軟基地

<img src="#"/**/onerror=alert(/xss/) width=100>FBj紅軟基地

  嘿嘿,Good Work!這好象是利用了腳本里注釋會(huì)被當(dāng)作一個(gè)空白來(lái)表示造成的!那怎么辦呢?上面提到的好象一直都是在進(jìn)行被動(dòng)的攻擊防御,為什么不抓住他的本源出來(lái)呢?哪里出了問(wèn)題哪里堵上!FBj紅軟基地

  上面的問(wèn)題好象本質(zhì)上就是一個(gè)東西,那就是用戶超越了他所處的標(biāo)簽,也就是數(shù)據(jù)和代碼的混淆,對(duì)付這種混淆的辦法就是限制監(jiān)牢,讓用戶在一個(gè)安全的空間內(nèi)活動(dòng),這通過(guò)上面的分析大家也可能已經(jīng)知道,只要在過(guò)濾了<>這兩個(gè)人人都會(huì)去殺的字符之后就可以把用戶的輸入在輸出的時(shí)候放到""之間,現(xiàn)在的一般的程序都是這樣做的,譬如將會(huì)轉(zhuǎn)化成<img src="http://www.loveshell.net">這是個(gè)好的安全習(xí)慣,然后呢?就要讓用戶的輸入處在安全的領(lǐng)域里了,這可以通過(guò)過(guò)濾用戶輸入里""實(shí)現(xiàn),但是不要忘記了,這個(gè)標(biāo)簽本身也是不安全的,過(guò)濾掉空格和tab鍵就不用擔(dān)心關(guān)鍵字被拆分饒過(guò)了,然后就是用文章中提到的辦法過(guò)濾掉script關(guān)鍵字,最后就是防止用戶通過(guò)&#這樣的形式饒過(guò)檢查,轉(zhuǎn)換掉&吧!FBj紅軟基地

  在文章中開(kāi)始提到的圖里可以看到,數(shù)據(jù)的轉(zhuǎn)換和過(guò)濾是可以在3個(gè)地方進(jìn)行轉(zhuǎn)換的,在接受數(shù)據(jù)的時(shí)候可以轉(zhuǎn)換下,在進(jìn)入數(shù)據(jù)庫(kù)的時(shí)候可以轉(zhuǎn)換下,在輸出數(shù)據(jù)的時(shí)候也可以轉(zhuǎn)換下,但是困惑在哪里呢?不得不面對(duì)一個(gè)問(wèn)題就是許多時(shí)候程序員舍不得為安全做出那么大的應(yīng)用上的犧牲,安全是要有代價(jià)的,譬如現(xiàn)在郵箱的就不愿意舍棄html標(biāo)簽,所以他們側(cè)重于XSS的IDS檢測(cè)的性質(zhì),只要發(fā)現(xiàn)不安全的東西就會(huì)轉(zhuǎn)化,但是攻擊是無(wú)法預(yù)知的,漂亮的東西總是脆弱的,有限制,肯定就有人會(huì)饒過(guò),呵呵。本文沒(méi)什么技術(shù)含量,只是希望搞安全的腳本人員能更加的了解Xss,跨站,不是那么簡(jiǎn)單滴!FBj紅軟基地

來(lái)源:紅訊頻道

專題合集 | 手機(jī)游戲 | 最近更新 | 下載排行 | 提交軟件 | 在線病毒掃描 | 聯(lián)系我們 | 版權(quán)聲明 | 網(wǎng)站地圖
Copyright ©2006-2013 紅軟基地(www.piola.cn). 湘ICP備2024053236號(hào)-1