跨站指令碼攻擊(簡稱xss),是一種針對**應用程式的安全漏洞攻擊技術,是**注入的一種,他允許惡意使用者將**注入網頁,其他使用者在瀏覽網頁時就會受到影響
xss攻擊可以分為三種
反射型xss
儲存型xss
dom型xss
反射型xss
反射型xss又稱非持久型xss,這種攻擊方式具有一次性
攻擊方式:
攻擊者通過電子郵件等方式將包含xss**的惡意鏈結傳送給目標使用者,當目標使用者訪問該鏈結時,伺服器接收該目標使用者的請求並進行處理,然後伺服器把帶有xss**的資料傳送給被攻擊者
當瀏覽器解析這段帶有xss**的惡意指令碼後,就會觸發xss漏洞儲存型xss
儲存型xss又稱持久型xss,攻擊指令碼將被永久儲存在伺服器的資料庫或檔案中,具有很高的隱蔽性攻擊方式:
當其他使用者瀏覽這個被注入了惡意指令碼的帖子時,惡意指令碼就會在他們瀏覽器執行
dom型xss
dom全稱document object model 使用dom 可以使程式指令碼動態訪問更新文件內容
dom型xss其實是一種特殊的反射型xss,它是基於dom文件物件模型的一種漏洞
攻擊方式:
使用者請求乙個專門經過設計的url,他由攻擊者提交,而且其中包含xss**,伺服器響應不會以任何形式包含攻擊者的指令碼,當使用者瀏覽器處理這個響應時,dom物件就會處理xss**,導致存在xss漏洞常用測試語句
常見的xss繞過編碼有js編碼,html實體編碼和url編碼
js編碼(js提供了四種字元編碼策略)
命名實體:以&開頭,以分號結尾,如」
字元編碼:十進位制,十六進製制,ascii碼或unicode字元編碼,樣式為」數值;」
如」url編碼
這裡的url編碼,也是兩次url全編碼的結果,如果alert被過濾,結果為%25%36%31%25%36%63%25%36%35%25%37%%32%25%37%34
使用xss編碼測試時,需要考慮html渲染的順序,特別是針對多種編碼組合時,要選擇合適的編碼方式進行測試xss漏洞修復意見
因為xss漏洞涉及輸入和輸出兩部分,所以其修復也分為兩部分
過濾輸入的資料,包括單引號,雙引號,大於號,小於號等非法字元
對輸出到頁面的資料進行相應的編碼轉換,包括html實體編碼,js編碼等
web安全 XSS攻擊
xss xss,即為 cross site scripting 中文名為跨站指令碼 不使用css縮寫是為了與層疊樣式表區分 是發生在目標使用者的瀏覽器層面上的,當渲染dom樹的過程成執行了不在預期內的js 時,就發生了xss攻擊。xss分為反射型xss,儲存型xss和dom xss 1 反射型xss...
XSS之Session安全(一)
xss對session的利用主要有兩種 session劫持和csrf,先談前者。原理很簡單,攻擊實驗也很好實現,但依然防不勝防 session雖然儲存在server端,但是在client必須有某種標識 以下稱sessionid 來與server端的session相對應。通常sessionid在cli...
php安全(二) xss攻擊
xss全稱為 cross site scripting,它指的是惡意攻擊者往web頁面裡插入惡意html 當使用者瀏覽該頁之時,嵌入其中web裡面的html 會被執行,進而達到某些人的攻擊目的。分類2 xss儲存型攻擊,惡意 被儲存到目標 的伺服器中,這種攻擊具有較強的穩定性和永續性,比較常見場景是...