1. 程式人生 > >XSS攻擊(出現的原因、預防措施......)

XSS攻擊(出現的原因、預防措施......)

上傳 實體 ont bug google 驗證方式 nbsp Go 彈框

驗證XSS攻擊重點不是去查找可輸入哪些內容會出現什麽樣的bug就是測試XSS攻擊,重點是了解它出現的原理,為什麽會出現XSS攻擊,導致一些問題出現?如何防禦與解決XSS攻擊?以下我將簡單介紹以上提出的問題。

如何判定沒有被XSS註入?

  我在數據交互的地方輸入什麽內容,則我輸入的內容被實際展示出來,這樣我們才認為沒有被XSS註入。

XSS是什麽?

  XSS(Cross Site Scripting),即跨站腳本攻擊,是一種常見於web application中的計算機安全漏洞。XSS通過在用戶端註入惡意的可運行腳本,若服務器端對用戶輸入不進行處理,直接將用戶輸入輸出到瀏覽器,則瀏覽器將會執行用戶註入的腳本。

XSS的分類?

  1.非持久型,也叫反射型XSS。通過GET和POST方法,向服務器端輸入數據。用戶輸入的數據通常被放置在URL的query string中,或者是form 數據中。如果服務器端對輸入的數據不進行過濾,驗證或編碼,就直接將用戶輸入的信息直接呈現給客戶,則可能會造成反射型XSS。

  2.持久型,也叫存儲型XSS。通常是因為服務器端將用戶輸入的惡意腳本沒有通過驗證就直接存儲在數據庫,並且每次通過調用數據庫的方式,將數據呈現在瀏覽器上。則該XSS跨站腳本攻擊將一直存在。若其他用戶訪問該頁面,則惡意腳本就會被觸發,用於盜取其他用戶的私人信息。

XSS的原理分析與解刨:

  詳見這篇文章:http://www.freebuf.com/articles/web/40520.html

XSS常見漏洞出現的地方:

  數據交互的地方:

  -get post cookies headers

  -反饋與瀏覽

  -富文本編輯器

  -各類標簽插入和自定義

  數據輸出的地方:

    -用戶資料

    -關鍵詞、標簽、說明

    -文件上傳

XSS的驗證方式,以下的驗證均可說明當前可被XSS註入:

  APP中涉及到H5的頁面,在可輸入框輸入以下內容:

  正常的頁面如下截圖:

    技術分享圖片技術分享圖片技術分享圖片

  1、在交互頁面輸入:<script> var valtest=‘{$dd}‘;</script>,頁面的編輯按鈕消失,且出現了\N,截圖顯示如下:

    技術分享圖片技術分享圖片

  2、在交互頁面輸入<script>alert(‘xss‘)</script> 漏洞代碼,查看是否出現彈框中顯示出xss

  3、在交互頁面輸入<span class="www"><script>alert(1)</script></span>,仍查看是否出現彈框。

XSS出現的原因?

  在HTML中常用到字符實體,將常用到的字符實體沒有進行轉譯,導致完整的標簽出現,在可輸入的文本框等某些區域內輸入特定的某些標簽導致代碼被惡意篡改。

XSS的解決與防禦措施?

  服務器都會將JavaScript當做文本處理,在服務端整合進HTML文檔中,在瀏覽器解析這些文本的過程,也就是XSS被執行的時候,所以主要的防禦措施就是對任何用戶提交到服務器上的文本都要經過編碼或者轉譯

  1、常見的HTML中有用的字符實體如下截圖:

    技術分享圖片技術分享圖片

  2、以下的截圖中可以看到已解決了XSS的註入,因此可以看到輸入的內容被實際展示了出來。詳見示例如下:

   技術分享圖片技術分享圖片

   我們對當前輸入的文本框內容查看,實際它已對輸入的標簽進行了轉譯,因此輸入的內容才可被實際展示出來,查看方式可通過將此頁面分享到微信、QQ等,用google Chrome打開,右鍵鼠標,查看“顯示網頁源代碼”。

   技術分享圖片技術分享圖片

  

  

XSS攻擊(出現的原因、預防措施......)