XSS - 漏洞

我須要的愛就在個人內心,其餘人只是讓我記得那份早已存在於心裏的愛,一個去談戀愛的人就像一個水槽裏面有水,這個水就是你愛本身的程度,我愛你是由於我跟你在一塊兒個人樣子,就是你把我激發起來你讓我變得更好了,可是前提是我也很愛我本身javascript

 

真相不重要,結果是怎樣才最重要。死不死不是別人說了算的,要看你本身願不肯意。-----大上海2012php

 

跨站腳本漏洞概述:css

跨站腳本漏洞類型及測試流程:html

一、在目標站點上找到輸入點,好比查詢接口,留言板等;前端

二、輸入一組 特殊字符 + 惟一識別字符,點擊提交後,查看返回得源碼,是否有作對應的處理;或者看提交的數據是否有被過濾掉;java

三、經過搜索定位到惟一字符,結合惟一字符先後語法確認是否能夠構造執行 js 的條件 (構造閉合)數據庫

四、提交構造的腳本代碼(以及各類繞過姿式),看是否能夠成功執行,若是成功執行則說明存在XSS漏洞;跨域

 

TIPS:瀏覽器

1.通常查詢接口容易出現反射型XSS,留言板容易出現存儲型XSS安全

2.因爲後臺可能存在過濾措施,構造的 js 可能會被過濾掉,而沒法生效,或者環境限制了執行(瀏覽器);

3.經過變化不一樣的 script 嘗試繞事後臺過濾機制;

 

反射型XSS(get&post)的原理分析:

從反射型的XSS (get)彈窗開始認識xss漏洞;若是表單限制了長度,有時候能夠在 F12 查看元素 把長度改掉;get 的XSS漏洞利用起來是比較容易的。

 

存儲型XSS原理分析:

存儲型xss是會被存到數據庫的,而反射型不會存放到數據庫;危害性會更加大由於是存到到了數據庫 或者 配置文件中的;

 

 

Dom型XSS原理分析:

XSS純前端的操做,會在表單獲取輸入的字符;還有一個 XSS-S 這個是在 url 獲取輸入的字符;

  XSS的危害-獲取cookie 的原理

    get、post;;如何獲取 cookie ,攻擊者搭建xss平臺手機cookie;

    GET型XSS利用:獲取cookie,GET型的參數是在 URL 裏面的

    1.用戶訪問 XSS 頁面,觸發腳本,服務端返回 帶惡意JS 的頁面

    2.用戶執行腳本,發送竊取數據 cookie 給攻擊者後臺,

    3.攻擊者僞造用戶登陸,形成破壞

    POST型XSS利用:

    1.Requset僞造頁面,觸發表單

    2.頁面 JS 自動 POST 表單數據,觸發XSS

    3.執行 JS ,竊取cookie;;;當用戶訪問咱們的表單後就等於攻擊完成,訪問表單是由於表單有惡意代碼,惡意代碼就是 docment.cookie 這樣獲取用戶的cookie;這個表單幫用戶請求了一個請求這個表單就是存在XSS漏洞的頁面 去提交以個js惡意代碼 這個惡意代碼就是獲取本地的 cookie  發送給個人攻擊者的xss後臺; ;post的這樣漏洞就是要本身搭建一個表單頁面自動提交頁面;讓用戶訪問;

 

  XSS危害-XSS進行釣魚原理

    用jis寫一個src訪問xss後臺的一個頁面 頁面會彈出來須要你登陸才能查看,而後咱們這個連接在重定向另外一個代碼保存剛剛的用戶和密碼;

    <script src="http://ip/xxx/xxx/xxx/xxx.html"></script>

    

  XSS危害-XSS獲取鍵盤記錄原理

    跨域狀況 端口 子域名 協議 不一樣都是跨域;;

    跨域 - 同源策略:爲了安全考慮,全部瀏覽器都約定了 同源策略,同源策略規定,兩個不一樣域名之間不能使用 JS 進行交互操做;好比:x.com 域名下的 JS 並不能操做 y.com域名下的對象;

    若是想要跨域操做,須要管理員進行特殊的配置;

    Tips:下面這些標籤跨域加載資源是不受同源策略限制的。

    <script src="">  // JS,加載到本地執行

    <img src="">    // 圖片

    <link href="">   // css

    <iframe src="">  // 任意資源

    若是沒有同源策略 攻擊者向 A 發送一個惡意連接 urlb:www.盜取你的cookie.com (這個連接嵌入不少惡意的 JS 代碼)這個代碼能夠直接盜取你的淘寶cookie 這樣子的話 不一樣xss 也不一樣其餘漏洞,這樣子只要發一個代碼惡意JS 的代碼就能夠讀取 cookie ,這樣子的話前端就亂了,因此全部瀏覽器都有同源策略;

    event.keyCode 方法 用來獲取用戶鍵盤的方法 而後能夠調用異步POST請求發送到後臺 

    ajxs 默認是不能夠跨域的;;大概------------ 

    

    header("Access-Control-Allow-Origin:*");  加了一個這樣的東西就能夠了;;

  

    XSS盲打原理:

      盲打主要說的是一種場景;盲打的話 在前端顯示不了的,輸入後  後臺保存了下來 而後在後臺執行了;若是咱們輸入了一段惡意代碼獲取cookie,當後臺管理員登陸的時候就會獲取它的cookie;

      XSS的過濾和繞過

      XSS輸出在 hrep 和 js 中的案例分析

      XSS常見防範措施

 

百度 OWASP 有一些相關學習的東西;;;

 

XSS是一種發生在 Web 前端的漏洞,因此其危害的對象也主要是前端用戶。

XSS漏洞能夠用來進行釣魚攻擊、前端 js 挖礦、用戶 cookie 獲取,甚至能夠結合瀏覽器自身漏洞對用戶進行遠程控制等;

XSS大概攻擊流程:略

 

跨站腳本漏洞常見類型:危害:存儲型 > 反射型 > DOM型

反射型:交互的數據通常不會被存在在數據庫裏面,一次性,所見即所得,通常出如今查詢類頁面等;

存儲型:交互得數據會被存在在數據庫裏面,永久性存儲,通常出如今留言板,註冊等頁面;

DOM型:不與後臺服務器產生數據交互,是一種經過DOM操做前端代碼輸出得時候產生得問題,一次性也屬於反射型;

 

XSS漏洞得主要緣由是程序對 輸入 和 輸出得控制不夠嚴格,致使 精心構造 得腳本輸入後,在輸到前端時被瀏覽器看成有效代碼解析執行從而產生危害;

 

XSS 繞過 - 過濾 - 轉換

1.前端限制繞過,直接抓包重放,或者修改HTML 前端代碼;

2.大小寫,好比:<SCRIPT>aLeRT(111)</sCRIpt>

3.拼湊:<scri<script>pt>alert(111)<scri<script>pt>

4.使用註釋進行干擾:<scri<!--test-->pt>alert(111)</sc<!--test-->ript>

XSS 繞過 - 過濾 - 編碼

後臺過濾了特殊字符,好比<script> 標籤,當該標籤能夠被各類編碼,後臺不必定會過濾,當瀏覽器對該編碼進行識別時,會翻譯成正常的標籤,從而執行;

使用編碼時 須要注意編碼在輸出點是否會被正常識別和翻譯;;

alert('xss') 進行URL編碼 能夠執行嗎?

alert%28%27xss%27%29  並不會執行,由於這些屬性標籤並不會正常解析這些編碼;;

但能夠進行 HTML 編碼就能夠了

XSS繞過的方法有不少,取決於思路和對前端技術的掌握程度;;

<ScRipT>alert(111)</ScRipT>

<img src= x onerror="alert(aaa)">

XSS仍是比較靈活的,主要看本身夠不夠風騷;

 

XSS  ---  htmlspecialchars 是一個 php 的函數 默認對  「  過濾不對  ‘  guolv

 

XSS 常見防範措施:輸入作過濾,輸出作轉義;

 過濾::好比輸入手機號,那麼只容許輸入手機格式的數字

轉義:全部輸出到前端的數據根據輸出點進行轉義,好比輸出到 html 中進行 html 實體轉義,輸入到 JS 就進行 JS 轉義;

 

 XSS之hrep:a 標籤 href :javascript:alert(111) 有可能有輸出;href 作輸出,通常 href是作超連接的,因此在輸入的時候只容許 http https 才容許在這裏輸出;

 

XSS之JS :如何去構造閉合 把前面的變量閉合掉 

<script>

  $dd='x' </script> <script>alert(‘xss’)</script>

在中間 加入一個 </script> 去閉合前面的 <script>

若是進行了HTML實體編碼,雖然解決XSS的問題,可是實體編碼後,在JS裏面不會進行翻譯,因此在JS的輸出點應該使用 \ 對特殊字符進行轉義;

 

 

學習所用;寫得亂七八糟;以爲本身看回來都有點難看懂;

相關文章
相關標籤/搜索