亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

學習筆記之xss原理篇

發布時間:2020-07-22 03:27:12 來源:網絡 閱讀:704 作者:董小洋 欄目:網絡安全

什么是xss

  XSS又叫CSS (Cross Site Script) ,跨站腳本***。它指的是惡意***者往Web頁面里插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web里面的html代碼會被執行,從而達到惡意的特殊目的。XSS屬于被動式的***,因為其被動且不好利用,所以許多人常呼略其危害性



XSS有哪些類型?

反射型:簡單的描述就是把用戶輸入的數據反射給瀏覽器,這個數據可能是Html代碼或者js代碼,反射后讓瀏覽器去執行。

存儲型:把用戶輸入的數據(比如惡意的js代碼)存儲在服務器端,具有很強的穩定性,危害時間長。

DOM Based XSS:這種不是按照存儲在哪里來劃分的,可以說是反射型,由于歷史原因,歸為一類,通過改變DOM結構形成的XSS稱之為DOM Based。


實際上,我認為xss主要可以分為:持久型xss非持久型xss

持久型xss就是將對客戶端***的腳本植入到服務器上,從而導致每個正常訪問頁面的用戶都會遭到這段xss腳本的***。

非持久型xss是對一個頁面的url中的某個參數做文章,把精心構造的惡意腳本包裝到url參數中,再將這個url散布到網上, 騙取用戶訪問這個url,從而對其進行***。


XSS的危害

1、劫持Cookie

2、構建Get和Post請求操作用戶的瀏覽器,使用JavaScript模擬瀏覽器發包

3、XSS釣魚

4、獲取用戶系統,瀏覽器信息

5、識別用戶安裝的軟件

6、劫持瀏覽器回話,從而執行任意操作。

7、強制彈出廣告頁面,刷流量

8、獲取用戶真實ip

等等。。。。。。。。。。。。


XSS的觸發條件

  了解XSS的觸發條件就先得從HTML(超文本標記語言)開始,我們瀏覽的網頁全部都是基于超文本標記語言創建的。

      而XSS的原理也就是往HTML中注入腳本,HTML指定了腳本標記<script>....</script>.在沒有過濾字符的情況下,只需要保持完整無錯的腳本標記即可觸發XSS,假如我們在某個資料表單提交內容,表單提交內容就是某個標記屬性所賦的值,我們可以構造如下值來閉和標記來構造完整無錯的腳本標記,

    "><script>alert('XSS');</script><"

    "><script> onclick="alert('XSS')</script><"

    結果形成了<A HREF=""><script>alert('XSS');</script> <"">Hahaha</A>


(假如做了一些過濾,還可以這樣)

測試閉和表單賦值所在的標記,形成完整無錯的腳本標記可觸發XSS,但是沒有腳本標記怎么觸發XSS呢?呵呵,我們只好利用其他標記了,假如要在網頁里顯示一張圖片,那么就要使用一個<img>標記,示例如下:

    <img src=" http://safe.it168.com /x ss.gif">

    img標記并不是真正地把圖片給加入到Html文檔把兩者合二為一,而是通過src屬性賦值。那么瀏覽器的任務就是解釋這個img標記,訪問src屬性所賦的值中的URL地址并輸出圖片。問題來了!瀏覽器會不會檢測src屬性所賦的值呢?答案是否!那么我們就可以在這里大做文章了,接觸過javascript的同志應該知道,javascript有一個URL偽協議,可以使用“javascript:”這種協議說明符加上任意的javascript代碼,當瀏覽器裝載這樣的URL時,便會執行其中的代碼.于是我們就得出了一個經典的XSS示例:

    <img src="javascript:alert('XSS');">



    當然并不是所有標記的屬性都能用,細心的你應該發現標記的屬性在訪問文件才觸發的XSS,這里我就不再深入,因為離開標記的屬性還有事件能幫助我們觸發XSS.那什么是事件呢?只有達到某個條件才會引發事件,正巧img標記有一個可以利用的onerror()事件,當img標記內含有一個onerror()事件而正好圖片沒有正常輸出便會觸發這個事件,而事件中可以加入任意的腳本代碼,其中的代碼也會執行.現在我們又得到了另外一個經典的XSS示例:

<img src=" http://x ss.jpg" onerror=alert('XSS')>

<img src=" http://x ss.jpg" onerror=alert("\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29")>  過濾了alert來執行彈窗

    

綜合這一部分,我們知道XSS的觸發條件包括:完整無錯的腳本標記,訪問文件的標記屬性和觸發事件。


預防措施


1、輸入檢測   

  對用戶的所有輸入數據進行檢測,比如過濾其中的“<”、“>”、“/”等可能導致腳本注入的特殊字符,或者過濾 "script"、"javascript" 等腳本關鍵字,或者對輸入數據的長度進行限制等等。同時,我們也要考慮用戶可能繞開ASCII碼,使用十六進行編碼如“<</span>”(“<”)、“>”(“>”)等來輸入腳本。因此,對用戶輸入的十六進制編碼,我們也要進行相 應的過濾。只要開發人員能夠嚴格檢測每一處交互點,保證對所有用戶可能的輸入都進行檢測和XSS過濾,就能夠有效地阻止XSS***。

2. 輸出編碼   

       通過前面對XSS***的分析,我們可以看到,之所以會產生XSS***,就是因為Web應用程序將用戶的輸入直接嵌入到某個頁面當中,作為該頁面的HTML代 碼的一部分。因此,當Web應用程序將用戶的輸入數據輸出到目標頁面中時,只要用HtmlEncoder等工具先對這些數據進行編碼,然后再輸出到目標頁面中。這樣,如果用戶輸入一些HTML的腳本,也會被當成普通的文字,而不會成為目標頁面HTML代碼的一部分得到執行。

3. Cookie防盜   

        利用XSS***,***者可以很方便地竊取到合法用戶的Cookie信息。因此,對于網站來說,不能在Cookie信息中存放太多敏感信息,也不能將 Cookie作為身份認證的唯一標識,等等。因此,對于Cookie,我們可以采取以下的措施。首先,我們要盡可能地避免在Cookie中泄露隱私,如用 戶名、密碼等;其次,我們可以將Cookie信息用MD5等Hash算法進行多次散列后存放;再次,為了防止重放***,我們也可以將Cookie和IP進行綁定,這樣也可以阻止***者冒充正常用戶的身份。

4. 嚴格限制URL訪問   

        攻 擊者使用XSS***,通常都要借助于自己指定的網站頁面,比如用它來記錄敏感信息等等。因此,在頁面的腳本代碼執行過程中,只要我們 嚴格限制其訪問的URL,比如只允許腳本代碼訪問本網站的URL等方式,就可以避免腳本的執行鏈接到其它可能是***者指定的頁面上。


5   網站程序端

       防范XSS***的一種方法是在服務器端采取防范措施。在大部分的跨站漏洞里,就是因為程序的過濾不嚴格,導致了***者可以在網站中加入“<”、“>”等字符,從而導致XSS***的產生.所以我們在程序的編寫中就要強制過濾關鍵字,過濾“<”、“>”,把用戶的輸入放入引號內,以達到數據與代碼隔離、過濾雙引號,防止用戶跨越許可的標記,添加自定義標記、過濾TAB和空格,防止關鍵字被拆分、過濾script關鍵字、過濾&#,防止HTML屬性繞過檢查.下面是一些實例

5.1   過濾“<”、“>”實例

          ***語句:<script>alert(/XSS/)</script>

          防范方法:replace(str,“<”,“&#x3C;”)&#ascii

          replace(str,“>”,“&#x3E;”)

          注:script為服務器端語句,不進行ascii解釋,用戶輸入的語句中含有“<”,“>”,都用&#x代替.所以過濾“<”、“>”基本可以防范跨站.&#(unicode編碼的十進制數)是unicode的HTML表示方式

5.2   HTML屬性過濾

          上面的代碼可以過濾掉“<”和“>”標記,讓***者無法構造HTML標記.但是,有經驗的***者就有可能會利用已存在的腳本屬性來進行針對性***,假如***者利用插入圖片功能,把圖片的路徑屬性修改為一段script代碼,也是可以達到跨站的目的的.

          下面我們來用實例來演示如何防范運用插圖片方式進行***的手法:

           ***語句:<imgsrc=“javascript:alert(/XSS/)”width=100>

           很多的HTML標記里屬性都支持“javascript:跨站代碼”的形式,因此就需要對***者輸入的數據進行如下轉換

           防范方法:replace(str,“javascript:”,“”)

                            replace(str,“jscript:”,“”)

                            replace(str,“vbscript:”,“”)

           從而達到的效果是:用戶輸入的語句中含有“javascript”,“jscript”,“vbscript”,都用空白代替.從而讓***者利用插入圖片功能修改路徑屬性進行跨站***的企圖失敗

5.3    過濾特殊字符

          因為HTML屬性的值,是用可支持“&#ASCii”的形式進行表示的,所以***語句代碼可變型為:

      ***語句:<imgsrc=“javascript:alert(/XSS/)”width=100>   這樣就可以突破過濾程序進行跨站***.

           其防范代碼為: replace(str,“&”,“&”)   這個代碼中把“&”替換為了“&”,后面的語句就變得沒有意義了.

5.4    其他的方式繞過 

           過濾例如下面這段代碼:

           ***語句:<imgsrc=“javascript:alert(/XSS/)”width=100>

           注意中間的空格,此空格分隔了關鍵字,也就是說,對Tab鍵進行了拆分.這樣就需要考慮把Tab空格過濾.

5.5    HTML屬性跨站的徹底防范

           就算是程序員考慮到了大多數的***方法,并做出了相應的過濾.***者也是有可能利用程序的缺陷進行***的.例如下面這兩條語句實例:

          <imgsrc=“#”style=“XSS:expression(alert(/XSS/));”>

          <imgsrc=“#”/**/onerror=alert(/XSS/)width=100>

            ***者仍然可以繞過過濾進行XSS***,所以也要考慮到這種情況的防范.



XSS為什么真正的***過程中個很少用呢?

1、耗時間

2、有一定幾率不成功

3、沒有相應的軟件來完成自動化***

4、前期需要基本的html、js功底,后期需要扎實的html、js、actionscript2/3.0等語言的功底

5、是一種被動的***手法

6、對website有http-only、crossdomian.xml沒有用


沒事可以都收據一些xss***腳本 沒準就用上了呢學習筆記之xss原理篇


這一篇文章很不錯適合新手看  https://zhuanlan.zhihu.com/p/26177815

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

万荣县| 江津市| 凭祥市| 鹤山市| 德令哈市| 延边| 察隅县| 永德县| 洪江市| 镇江市| 濉溪县| 翼城县| 阿坝县| 苏尼特左旗| 宝山区| 墨竹工卡县| 邵东县| 青铜峡市| 禄丰县| 固阳县| 简阳市| 卢龙县| 南乐县| 卓尼县| 永和县| 大石桥市| 青州市| 梁河县| 潞西市| 澄江县| 开远市| 拉萨市| 吉首市| 南陵县| 和林格尔县| 抚松县| 高唐县| 安国市| 新和县| 禹城市| 宕昌县|