最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
XSS的原理分析與解剖

0×01 前言:

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到白銀區(qū)網(wǎng)站設(shè)計(jì)與白銀區(qū)網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:做網(wǎng)站、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋白銀區(qū)地區(qū)。

[[118026]]

《xss攻擊手法》一開(kāi)始在互聯(lián)網(wǎng)上資料并不多(都是現(xiàn)成的代碼,沒(méi)有從基礎(chǔ)的開(kāi)始),直到刺的《白帽子講WEB安全》和cn4rry的《XSS跨站腳本攻擊剖析與防御》才開(kāi)始好轉(zhuǎn)。

我這里就不說(shuō)什么xss的歷史什么東西了,xss是一門又熱門又不太受重視的Web攻擊手法,為什么會(huì)這樣呢,原因有下:

1、耗時(shí)間
2、有一定幾率不成功
3、沒(méi)有相應(yīng)的軟件來(lái)完成自動(dòng)化攻擊
4、前期需要基本的html、js功底,后期需要扎實(shí)的html、js、actionscript2/3.0等語(yǔ)言的功底
5、是一種被動(dòng)的攻擊手法
6、對(duì)website有http-only、crossdomian.xml沒(méi)有用

但是這些并沒(méi)有影響黑客對(duì)此漏洞的偏愛(ài),原因不需要多,只需要一個(gè)。

Xss幾乎每個(gè)網(wǎng)站都存在,google、baidu、360等都存在。

0×02 原理:

首先我們現(xiàn)在本地搭建個(gè)PHP環(huán)境(可以使用phpstudy安裝包安裝),然后在index.php文件里寫入如下代碼:

 
 
 
 
  1.  
  2.  
  3.  
  4. XSS原理重現(xiàn) 
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  

  11.  
  12. $xss = $_GET['xss_input'];  
  13. echo '你輸入的字符為
    '.$xss;  
  14. ?> 
  15.  
  16.  
  17.  

然后,你會(huì)在頁(yè)面看到這樣的頁(yè)面

我們?cè)囍斎隺bcd123,得到的結(jié)果為

我們?cè)诳纯丛创a

我們輸入的字符串被原封不動(dòng)的輸出來(lái)了,那這里我們提出來(lái)一個(gè)假設(shè),假設(shè)我們?cè)谒阉骺蜉斎胂旅娴拇a會(huì)出現(xiàn)什么呢?

 
 
 
 
  1.  

如果按照上面的例子來(lái)說(shuō),它應(yīng)該存在第12行的[br]與[/boby]>之間,變成:

 
 
 
 

  1.  

之后,應(yīng)該會(huì)彈出對(duì)話框。

既然假設(shè)提出來(lái),那我們來(lái)實(shí)現(xiàn)下這個(gè)假設(shè)成不成立吧。

我們輸入

 
 
 
 
  1.  

得到的頁(yè)面為

成功彈窗,這個(gè)時(shí)候基本上就可以確定存在xss漏洞。

我們?cè)诳纯丛创a

看來(lái),我們的假設(shè)成功了,這節(jié)就說(shuō)說(shuō)XSS的原理,下面幾節(jié)說(shuō)說(shuō)xss的構(gòu)造和利用。

#p#

0×03 xss利用輸出的環(huán)境來(lái)構(gòu)造代碼 :

上節(jié)說(shuō)了xss的原理,但是我們的輸出點(diǎn)不一在[ br ]和[ /boby ]里,可以出現(xiàn)在html標(biāo)簽的屬性里,或者其他標(biāo)簽里面。所以這節(jié)很重要,因?yàn)椴灰欢?當(dāng)你輸入下面代碼就會(huì)出現(xiàn)彈窗。 

 
 
 
 
  1.  

先貼出代碼:

 
 
 
 
  1.  
  2.  
  3.  
  4. XSS利用輸出的環(huán)境來(lái)構(gòu)造代碼 
  5.  
  6.  
  7.  
  8. 把我們輸入的字符串 輸出到input里的value屬性里
     
  9.  
  10. 請(qǐng)輸入你想顯現(xiàn)的字符串
     

  11.  
  12.  
  13.  

  14.  
  15. $xss = $_GET['xss_input_value'];  
  16. if(isset($xss)){  
  17. echo '';  
  18. }else{  
  19. echo '';  
  20. }  
  21. ?> 
  22.  
  23.  
  24.  

下面是代碼的頁(yè)面

這段代碼的作用是把第一個(gè)輸入框的字符串,輸出到第二個(gè)輸入框,我們輸入1,那么第二個(gè)input里的value值就是1,下面是頁(yè)面的截圖和源代碼的截圖(這里我輸入下面的代碼來(lái)測(cè)試)

 
 
 
 
  1.  

 

明顯的可以看到,并沒(méi)有彈出對(duì)話框,大家可能會(huì)疑惑為什么沒(méi)有彈窗呢,我們來(lái)看看源代碼

我們看到我們輸入的字符串被輸出到第15行input標(biāo)簽里的value屬性里面,被當(dāng)成value里的值來(lái)顯現(xiàn)出來(lái),所以并沒(méi)有彈窗,這時(shí)候我們?cè)撛趺崔k呢?聰明的人已經(jīng)發(fā)現(xiàn)了可以在

 
 
 
 
  1.  

前面加個(gè)">來(lái)閉合input標(biāo)簽。所以應(yīng)該得到的結(jié)果為

成功彈窗了,我們?cè)诳纯催@時(shí)的頁(yè)面

看到后面有第二個(gè)input輸入框后面跟有">字符串,為什么會(huì)這樣呢,我們來(lái)看看源代碼

這時(shí)可以看到我們構(gòu)造的代碼里面有兩個(gè)">,第一個(gè)">是為了閉合input標(biāo)簽,所以第二個(gè)">就被拋棄了,因?yàn)閔tml的容錯(cuò)性高,所以并沒(méi)有像php那樣出現(xiàn)錯(cuò)誤,而是直接把多余的字符串來(lái)輸出了,有的人是個(gè)完美主義者,不喜歡有多余的字符串被輸出,這時(shí)該怎么辦呢?

這里我問(wèn)大家一個(gè)問(wèn)題,我之前說(shuō)的xss代碼里,為什么全是帶有標(biāo)簽的。難道就不能不帶標(biāo)簽么?!答:當(dāng)然可以。既然可以不用標(biāo)簽,那我們就用標(biāo)簽里的屬性來(lái)構(gòu)造XSS,這樣的話,xss代碼又少,又不會(huì)有多余的字符串被輸出來(lái)。

還是這個(gè)環(huán)境,但是不能使用標(biāo)簽,你應(yīng)該怎么做。想想input里有什么屬性可以調(diào)用js,html學(xué)的好的人,應(yīng)該知道了,on事件,對(duì)的。我們可以用on事件來(lái)進(jìn)行彈窗,比如這個(gè)xss代碼 我們可以寫成

 
 
 
 
  1. " onclick="alert('xss')  

這時(shí),我們?cè)趤?lái)試試,頁(yè)面會(huì)發(fā)生什么樣的變化吧。

沒(méi)有看到彈窗啊,失敗了么?答案當(dāng)然是錯(cuò)誤的,因?yàn)閛nclick是鼠標(biāo)點(diǎn)擊事件,也就是說(shuō)當(dāng)你的鼠標(biāo)點(diǎn)擊第二個(gè)input輸入框的時(shí)候,就會(huì)觸發(fā)onclick事件,然后執(zhí)行alert('xss')代碼。我們來(lái)試試看

當(dāng)我點(diǎn)擊后,就出現(xiàn)了彈窗,這時(shí)我們來(lái)看看源代碼吧

第15行,value值為空,當(dāng)鼠標(biāo)點(diǎn)擊時(shí),就會(huì)彈出對(duì)話框。這里可能就會(huì)有人問(wèn)了,如果要點(diǎn)擊才會(huì)觸發(fā),那不是很麻煩么,成功率不就又下降了么。我來(lái)幫你解答這個(gè)問(wèn)題,on事件不止onclick這一個(gè),還有很多,如果你想不需要用戶完成什么動(dòng)作就可以觸發(fā)的話,i可以把onclick改成

Onmousemove 當(dāng)鼠標(biāo)移動(dòng)就觸發(fā)

Onload 當(dāng)頁(yè)面加載完成后觸發(fā)

還有很多,我這里就不一一說(shuō)明了,有興趣的朋友可以自行查詢下。

別以為就這樣結(jié)束了,還有一類環(huán)境不能用上述的方法,

那就是如果在[ textarea ]標(biāo)簽里呢?!或者其他優(yōu)先級(jí)比script高的呢?

就下面這樣

這時(shí)我們?cè)撛趺崔k呢?既然前面都說(shuō)了閉合屬性和閉合標(biāo)簽了,那能不能閉合完整的標(biāo)簽?zāi)兀鸢甘强隙ǖ?。我們可以輸入下面的代碼就可以實(shí)現(xiàn)彈窗了。

 
 
 
 
  1.  

#p#

0×04 過(guò)濾的解決辦法

假如說(shuō)網(wǎng)站禁止過(guò)濾了script 這時(shí)該怎么辦呢,記住一句話,這是我總結(jié)出來(lái)的“xss就是在頁(yè)面執(zhí)行你想要的js”不用管那么多,只要能運(yùn)行我們的js就OK,比如用img標(biāo)簽或者a標(biāo)簽。我們可以這樣寫

 
 
 
 
  1. 當(dāng)找不到圖片名為1的文件時(shí),執(zhí)行alert('xss')  
  2. s 點(diǎn)擊s時(shí)運(yùn)行alert('xss')