什麼是XSS(跨站)攻擊

·XSS(跨站)攻擊的概念
  XSS又叫CSS (Cross Site Script) ,跨站腳本攻擊。它指的是惡意攻擊者往Web頁面裏插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web裏面的html代碼會被執行,從而達到惡意用戶的特殊目的。XSS屬於被動式的攻擊,因爲其被動且不好利用,所以許多人常呼略其危害性。而本文主要講的是利用XSS得到目標服務器的shell。技術雖然是老技術,但是其思路希望對大家有幫助。
·跨站攻擊的方式
  跨站攻擊有多種方式,由HTML語言允許使用腳本進行簡單交互,入侵者便通過技術手段在某個頁面裏插入一個惡意HTML代碼——例如記錄論壇保存的用戶信息(Cookie),由於Cookie保存了完整的用戶名和密碼資料,用戶就會遭受安全損失。當然,攻擊者有時也會在網頁中加入一些以.JS或.VBS爲後尾名的代碼時,在我們瀏覽時,同樣我們也會被攻擊到。
·如何尋找XSS漏洞
  XSS攻擊分成兩類,一類是來自內部的攻擊,主要指的是利用程序自身的漏洞,構造跨站語句,如:dvbbs的showerror.asp存在的跨站漏洞。另一類則是來來自外部的攻擊,主要指的自己構造XSS跨站漏洞網頁或者尋找非目標機以外的有跨站漏洞的網頁。如當我們要滲透一個站點,我們自己構造一個有跨站漏洞的網頁,然後構造跨站語句,通過結合其它技術,如社會工程學等,欺騙目標服務器的管理員打開。



XSS(跨站)攻擊漏洞原理

 一、XSS的觸發條件
 瞭解XSS的觸發條件就先得從HTML(超文本標記語言)開始,我們瀏覽的網頁全部都是基於超文本標記語言創建的,如顯示一個超鏈接:<A HREF="http://safe.it168.com">IT168安全頻道</A>。而XSS的原理也就是往HTML中注入腳本,HTML指定了腳本標記<script></script>.在沒有過濾字符的情況下,只需要保持完整無錯的腳本標記即可觸發XSS,假如我們在某個資料表單提交內容,表單提交內容就是某個標記屬性所賦的值,我們可以構造如下值來閉和標記來構造完整無錯的腳本標記>>>

防禦XSS
  數據的轉換和過濾是可以在3個地方進行轉換的,在接受數據的時候可以轉換下,在進入數據庫的時候可以轉換下,在輸出數據的時候也可以轉換下,但是困惑在哪裏呢?不得不面對一個問題就是許多時候程序員捨不得爲安全做出那麼大的應用上的犧牲,安全是要有代價的,現在郵箱的就不願意捨棄html標籤,所以他們側重於XSS的IDS檢測的性質,只要發現不安全的東西就會轉化,但是攻擊是無法預知的,漂亮的東西總是脆弱的。
  XSS攻擊的可怕性及靈活性深受黑客的喜愛。爭對XSS攻擊,編者給普通瀏覽網頁用戶及WEB應用開發者給出以下的安全建議:
web用戶

  1.在電子郵件或者即時通訊軟件中點擊鏈接時需要格外小心:留心可疑的過長鏈接,尤其是它們看上去包含了HTML代碼。如果對其產生懷疑,可以在瀏覽器地址欄中手工輸入域名,而後通過該頁面中的鏈接瀏覽你所要的信息。
  2.對於XSS漏洞,沒有哪種web瀏覽器具有明顯的安全優勢。也就是Firefox也同樣不安全。爲了獲得更多的安全性,可以安裝一些瀏覽器插件:比如Firefox的NoScript或者Netcraft工具條。
  3.世界上沒有“100%的有效”。儘量避免訪問有問題的站點:比如提供hack信息和工具、破解軟件、成人照片的網站。這些類型的網站會利用瀏覽器漏洞並危害操作系統。

web應用開發者



  1.對於開發者,首先應該把精力放到對所有用戶提交內容進行可靠的輸入驗證上。這些提交內容包括URL、查詢關鍵字、http頭、post數據等。只接受在你所規定長度範圍內、採用適當格式、你所希望的字符。阻塞、過濾或者忽略其它的任何東西。
  2.保護所有敏感的功能,以防被bots自動化或者被第三方網站所執行。實現session標記(session tokens)、CAPTCHA系統或者HTTP引用頭檢查。
  3.如果你的web應用必須支持用戶提供的HTML,那麼應用的安全性將受到災難性的下滑。但是你還是可以做一些事來保護web站點:確認你接收的HTML內容被妥善地格式化,僅包含最小化的、安全的tag(絕對沒有JavaScript),去掉任何對遠程內容的引用(尤其是樣式表和JavaScript)。爲了更多的安全,請使用httpOnly的cookie。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章