XSS攻擊(Cross Site Scripting)

參考資料:
[1]. 淺談XSS攻擊的那些事(附常用繞過姿勢)
[2]. XSS(偷你的Cookies)

  • 什么是XSS

XSS是跨站腳本攻擊(Cross Site Scripting),為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站腳本攻擊縮寫為XSS。惡意攻擊者往Web頁面里插入惡意Script代碼,當用戶瀏覽該頁之時,嵌入其中Web里面的Script代碼會被執(zhí)行,從而達到惡意攻擊用戶的目的。

例子

用戶在留言板中輸入JS代碼如下

<script>alert(“hey!you are attacked”)</script>

留言板就變成

<html>
    <head>
       <title>留言板</title>
    </head>
<body>
<div id=”board” 
        <script>alert(“hey!you are attacked”)</script>
</div>     
    </body>
</html>

輸入的代碼會在訪問網(wǎng)站的時候執(zhí)行。

危害

  • 竊取cookie值
  • 劫持流量實現(xiàn)惡意跳轉(zhuǎn)
    插入跳轉(zhuǎn)代碼
<script>window.location.;</script>

反射型XSS和存儲型XSS

JS代碼有沒有存儲在數(shù)據(jù)庫。
反射型XSS例子:網(wǎng)站有一些回顯的功能,比如我們在URL參數(shù)可能會重新返回到HTML頁面,如果這個參數(shù)是一段JS代碼,那么顯示HTML頁面的時候可能就會執(zhí)行JS代碼。
存儲型XSS:留言板的例子就很經(jīng)典,留言的腳本被存儲到數(shù)據(jù)庫中。


反射型XSS

存儲型XSS

XSS獲取cookie的過程

在目標網(wǎng)站上嵌入一段獲取cookie的JS代碼,并且向我們攻擊的服務(wù)器發(fā)送請求,請求的URL上加上cookie的內(nèi)容。

防范手段

首先是過濾。對諸如<script>、<img>、<a>等標簽進行過濾。
其次是編碼。像一些常見的符號,如<>在輸入的時候要對其進行轉(zhuǎn)換編碼,這樣做瀏覽器是不會對該標簽進行解釋執(zhí)行的,同時也不影響顯示效果。
最后是限制。通過以上的案例我們不難發(fā)現(xiàn)xss攻擊要能達成往往需要較長的字符串,因此對于一些可以預(yù)期的輸入可以通過限制長度強制截斷來進行防御。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容