XSS攻擊的型別

2021-10-17 14:18:52 字數 2533 閱讀 1669

一類是來自內部的攻擊,主要指的是利用程式自身的漏洞,構造跨站語句

另一類則是來自外部的攻擊,主要指的自己構造xss跨站漏洞網頁或者尋找非目標機以外的有跨站漏洞的網頁

如當我們要滲透乙個站點,我們自己構造乙個有跨站漏洞的網頁,然後構造跨站語句,通過結合其它技術

如社會工程學等,欺騙目標伺服器的管理員開啟

反射型xss是非永續性、引數型的跨站指令碼

反射型xss的js**在web應用的引數(變數)中,如搜尋框的反射型xss

在搜尋框中,提交

poc注意到,我們提交的poc會出現在search.php頁面中的keywords引數中

當今的**中包含大量的動態內容以提高使用者體驗,比過去要複雜得多

所謂動態內容,就是根據使用者環境和需要,web應用程式能夠輸出相應的內容

動態站點會受到一種名為「跨站指令碼攻擊」

(cross site scripting 安全專家們通常將其縮寫成xss

原本應當是css,但為了和層疊樣式表(cascading style sheet,css)有所區分,故稱xss)

的威脅,而靜態站點則完全不受其影響。

攻擊者通過在鏈結中插入惡意**,就能夠盜取使用者資訊

攻擊者通常會用十六進製制(或其他編碼方式)將鏈結編碼,以免使用者懷疑它的合法性

**在接收到包含惡意**的請求之後會產成乙個包含惡意**的頁面

而這個頁面看起來就像是那個**應當生成的合法頁面一樣

假設使用者甲發表了一篇包含惡意指令碼的帖子,那麼使用者乙在瀏覽這篇帖子時,惡意指令碼就會執行,盜取使用者乙的session資訊

有關攻擊方法的詳細情況將在下面闡述。

利用此漏洞,還可以實現一種攻擊叫做csrf,csrf(cross-site request forgery)跨站請求偽造

也被稱為「one click attack」或者session riding,通常縮寫為csrf或者xsrf,是一種對**的惡意利用

儘管聽起來像跨站指令碼(xss),但它與xss非常不同,並且攻擊方式幾乎相左

xss利用站點內的信任使用者,而csrf則通過偽裝來自受信任使用者的請求來利用受信任的**

與xss攻擊相比,csrf攻擊往往不大流行(因此對其進行防範的資源也相當稀少)和難以防範,所以被認為比xss更具危險性。

也就是說,黑客如果向論壇中注入如下**:加入論壇的使用者同時也是**的合法使用者,其客戶端登入**後具有該**的

cookie如果這時該使用者開啟論壇,顯示論壇內容時候,則執行了這段**,於是在購物**時結賬時,賬面上多扣除了1000枚cpu的**

儲存型xss:儲存型xss,持久化,**是儲存在伺服器中的

如在個人資訊或發表文章等地方,加入**,如果沒有過濾或過濾不嚴,那麼這些**將儲存到伺服器中

使用者訪問該頁面的時候觸發**執行。

這種xss比較危險,容易造成蠕蟲,盜竊cookie(雖然還有種dom型xss,但是也還是包括在儲存型xss內)

dom xss比較特殊。owasp關於dom型號xss的定義是基於dom的xss是一種xss攻擊

其中攻擊的payload由於修改受害者瀏覽器頁面的dom樹而執行的

其特殊的地方就是payload比較難以檢測

如下面的例子:

[#message=]

我們以描點的方式提交poc

poc並不會傳送給伺服器,但是已經觸發了xss

檢視提交引數後的html頁面(dom樹),會形成鮮明的對比

在web 應用開發中,開發者最大的失誤往往是無條件地信任使用者輸入

假定使用者(即使是惡意使用者)總是受到瀏覽器的限制,總是通過瀏覽器和伺服器互動

從而開啟了攻擊web應用的大門。實際上,黑客們攻擊和操作web**的工具很多,根本不必侷限於瀏覽器

從最低階的字元模式的原始介面(例如telnet)

到 cgi指令碼掃瞄器、web**、web應用掃瞄器,惡意使用者可能採用的攻擊模式和手段很多。

因此,只有嚴密地驗證使用者輸入的合法性,才能有效地抵抗黑客的攻擊

應用程式可以用多種方法(甚至是驗證範圍重疊的方法)執行驗證

例如:在認可使用者輸入之前執行驗證,確保使用者輸入只包含合法的字元,而且所有輸入域的內容長度都沒有超過範圍

(以防範可能出現的緩衝區溢位攻擊),在此基礎上再執行其他驗證,確保使用者輸入的資料不僅合法,而且合理

必要時不僅可以採取強制性的長度限制策略,而且還可以對輸入內容按照明確定義的特徵集執行驗證

下面幾點建議將幫助你正確驗證使用者輸入資料:

⑴ 始終對所有的使用者輸入執行驗證,且驗證必須在乙個可靠的平台上進行,應當在應用的多個層上進行。

⑵ 除了輸入、輸出功能必需的資料之外,不要允許其他任何內容。

⑶ 設立「信任**基地」,允許資料進入信任環境之前執行徹底的驗證。

⑷ 登入資料之前先檢查資料型別。

⑸ 詳盡地定義每一種資料格式,例如緩衝區長度、整數型別等。

⑹ 嚴格定義合法的使用者請求,拒絕所有其他請求。

⑺ 測試資料是否滿足合法的條件,而不是測試不合法的條件。這是因為資料不合法的情況很多,難以詳盡列舉。

XSS攻擊的防禦

xss 又稱 css,全稱 cross sitescript,跨站指令碼攻擊,是 web 程式中常見的漏洞,xss 屬於被動式且用於客戶端的攻擊方式,所以容易被忽略其危害性。其原理是攻擊者向有 xss 漏洞的 中輸入 傳入 惡意的 html 當其它使用者瀏覽該 時,這段 html 會自動執行,從而達...

xss攻擊總結

顧名思義,非持久型xss攻擊是一次性的,僅對當次的頁面訪問產生影響。非持久型xss攻擊要求使用者訪問乙個被攻擊者篡改後的鏈結,使用者訪問該鏈結時,被植入的攻擊指令碼被使用者遊覽器執行,從而達到攻擊目的。持久型xss,會把攻擊者的資料儲存在伺服器端,攻擊行為將伴隨著攻擊資料一直存在。dom 不經過後端...

前端XSS攻擊

什麼是xss攻擊?xss原稱為css cross site scripting 即跨站指令碼攻擊,因為和層疊樣式表 cascading style sheets 重名,所以改稱為xss x一般有未知的含義,還有擴充套件的含義 xss攻擊可能造成的後果 獲取頁面資料 獲取cookie 劫持前端邏輯 傳...