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

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

新聞中心

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

0×01 前言:

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

[[118026]]

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

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

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

但是這些并沒有影響黑客對此漏洞的偏愛,原因不需要多,只需要一個。

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

0×02 原理:

首先我們現(xiàn)在本地搭建個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.  

然后,你會在頁面看到這樣的頁面

我們試著輸入abcd123,得到的結(jié)果為

我們在看看源代碼

我們輸入的字符串被原封不動的輸出來了,那這里我們提出來一個假設(shè),假設(shè)我們在搜索框輸入下面的代碼會出現(xiàn)什么呢?

 
 
 
 
  1.  

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

 
 
 
 

  1.  

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

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

我們輸入

 
 
 
 
  1.  

得到的頁面為

成功彈窗,這個時候基本上就可以確定存在xss漏洞。

我們在看看源代碼

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

#p#

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

上節(jié)說了xss的原理,但是我們的輸出點不一在[ br ]和[ /boby ]里,可以出現(xiàn)在html標簽的屬性里,或者其他標簽里面。所以這節(jié)很重要,因為不一定 當你輸入下面代碼就會出現(xiàn)彈窗。 

 
 
 
 
  1.  

先貼出代碼:

 
 
 
 
  1.  
  2.  
  3.  
  4. XSS利用輸出的環(huán)境來構(gòu)造代碼 
  5.  
  6.  
  7.  
  8. 把我們輸入的字符串 輸出到input里的value屬性里
     
  9.  
  10. 請輸入你想顯現(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.  

下面是代碼的頁面

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

 
 
 
 
  1.  

 

明顯的可以看到,并沒有彈出對話框,大家可能會疑惑為什么沒有彈窗呢,我們來看看源代碼

我們看到我們輸入的字符串被輸出到第15行input標簽里的value屬性里面,被當成value里的值來顯現(xiàn)出來,所以并沒有彈窗,這時候我們該怎么辦呢?聰明的人已經(jīng)發(fā)現(xiàn)了可以在

 
 
 
 
  1.  

前面加個">來閉合input標簽。所以應(yīng)該得到的結(jié)果為

成功彈窗了,我們在看看這時的頁面

看到后面有第二個input輸入框后面跟有">字符串,為什么會這樣呢,我們來看看源代碼

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

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

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

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

這時,我們在來試試,頁面會發(fā)生什么樣的變化吧。

沒有看到彈窗啊,失敗了么?答案當然是錯誤的,因為onclick是鼠標點擊事件,也就是說當你的鼠標點擊第二個input輸入框的時候,就會觸發(fā)onclick事件,然后執(zhí)行alert('xss')代碼。我們來試試看

當我點擊后,就出現(xiàn)了彈窗,這時我們來看看源代碼吧

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

Onmousemove 當鼠標移動就觸發(fā)

Onload 當頁面加載完成后觸發(fā)

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

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

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

就下面這樣

這時我們該怎么辦呢?既然前面都說了閉合屬性和閉合標簽了,那能不能閉合完整的標簽?zāi)兀鸢甘强隙ǖ?。我們可以輸入下面的代碼就可以實現(xiàn)彈窗了。

 
 
 
 
  1.  

#p#

0×04 過濾的解決辦法

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

 
 
 
 
  1. 當找不到圖片名為1的文件時,執(zhí)行alert('xss')  
  2. s 點擊s時運行alert('xss')