了解xss shell是什麼之前,讓我們一起回顧一下一些基本的xss(跨站腳本),xss是最常見的一個漏洞,存在于今天許多的web應用程式。xss是攻擊者試圖通過web應用程式執行惡意腳本的技術,攻擊者通過突破同源政策的web應用程式。
攻擊者一旦能夠找到一個存在xss漏洞的web應用程式,他可以利用這個漏洞執行不同類型的攻擊其中一些是:
- 竊取憑據(Stealing Credentials)
- 竊取會話令牌(Stealing Session tokens)
- 破壞網站(Defacing the Website)
- 造成DOS攻擊(Causing DOS)
- 安裝鍵盤記錄器等更多(Installing Key loggers and many more)
跨站腳本存在三種不同的類型:
- 反射型XSS
- 存儲型XSS
- 基于DOM的XSS
反射型xss:
這種漏洞存在于動态網頁的web應用程式中,通常這些應用程式将消息轉換為一個參數并傳回給使用者。
例如:
URL:
http://www.samplesite.com/error.html?value=learn+hacking這說明在應用程式的消息中響應“learn+hacking”。 這意味着應用程式從URL中提取資訊,對其進行處理,并顯示給使用者。 是以該URL處理使用者提供的資料,并将其插入到伺服器的響應。 如果沒有進行适當的過濾,那麼應用程式很容易受到反射型XSS攻擊。
URL可以設定為:
http://www.samplesite.com/error.html?value=C1C
當你點選上面的網址,它會彈出一個警告框。
存儲型xss:
這種類型的漏洞存在于接受來自使用者的輸入并将其存儲在該應用程式的伺服器中,然後顯示給其他使用者。
例如:
一個 Facebook 的應用程式,它允許對任何圖檔或地位發表評論更新,然後顯示給所有其他使用者。如果應用程式不會過濾輸入内容,然後,攻擊者可以評論處編寫一個惡意腳本,以便通路特定頁面的使用者将受影響。
是以存儲型 XSS 包括兩件事要做。第一,攻擊者将惡意腳本輸入到應用程式。第二,在使用者通路精心構造的頁面,腳本在後端讓使用者不知情的情況下執行。
基于DOM的XSS:
DOM表示文檔對象模型。這是完全不同于其他兩個前面描述的攻擊。在基于DOM的xss,當使用者點選構造的URL時,伺服器響應不包含攻擊者的腳本。相反的是,浏覽器在處理響應時執行惡意腳本。
這是因為浏覽器的文檔對象模型有能力來确定用于加載目前頁面的URL。應用程式發出的腳本可能會從URL中提取資料并進行處理。然後上傳動态頁面的内容,根據執行的腳本通過URL。
XSS Shell 是什麼?
XSS shell 是一個強大的ASP.NET 開發的工具,作為攻擊者與受害者之間的後門 。XSS Shell可以作為一個強大的後門和遠端管理軟體。
攻擊過程:
- XSS Shell伺服器設定。
- 配置XSS Tunnel使用XSS Shell伺服器。
- 插入惡意腳本到一個脆弱的網站。
- 開啟XSS Tunnel,等待的受害者。
- 配置浏覽器或工具使用XSS Tunnel。
- 當受害者通路脆弱的頁面,開始使用XSS Tunnel。
XSS Shell的工作原理:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CM5EDNmNmMjhzN1EjZ5MGO3UzM0UWOjJmM2UTZ4ITOl9CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
圖(A)
如圖中所示,最初攻擊者建立與 XSS Shell 的連接配接,并且惡意腳本插入存在存儲型或反射型XSS 的web 應用程式。一旦受害者通路存在惡意腳本的頁面,請求将被發送到 XSS Shell 伺服器。根據請求,伺服器建立一個通道與受害人進行互動。
圖(B)
一旦受害者與XSS Shell伺服器之間建立了一個通道,攻擊者可以通過XSS Shell控制通信接口。XSS Shell界面隻是一個 GUI 環境,向攻擊者提供了一套完善的指令來執行某些操作。
在執行一個指令,必要的函數或腳本将在 XSS Shell 伺服器調用,并将它發送給受害者。該腳本将被執行在受害者的浏覽器,它會向 XSS Shell 伺服器發送相應的結果。XSS Shell 伺服器将結果存儲在"MS-Access"資料庫通常由它用來存儲資料。每當攻擊者需要的時候,可以從資料庫中提取結果。
XSS接口提供的一些指令是:
- Get Cookie(擷取Cookie)
- Get Current Page(擷取目前頁面)
- Get Clipboard (擷取剪切闆資料)
- Get Key-logger data(擷取鍵盤記錄器資料)
- Crash browser (浏覽器崩潰 )
使用XSS Shell的一個優點是:它是開放源代碼的,很容易實作新的指令。
安裝要求:
IIS伺服器,你可以在主機上使用.asp檔案。
Microsoft Access(. mdb)
一個容易受到XSS攻擊的網站。
一個脆弱的網站進行攻擊。
設定環境:
* 下載下傳的XSSShell:
http://labs.portcullis.co.uk/download/xssshell-xsstunnell.zip* 配置IIS托管網站。
* 安裝
* 配置XSS Shell。
IIS配置:
在 Windows 7 中配置 IIS 或以上時,按照下面給出的步驟:
- 點選“開始菜單”,進入“控制台”。
- 點選“程式”,然後單擊“打開或關閉windows功能”。
- 出現一個新的"Windows 功能"對話框。展開"Internet 資訊服務",選擇預設的特性,必須安裝IIS。
- 如果需要,你還可以展開其他類别安裝任何附加的功能。
- 如果你想使用IIS用于評估審計目的,建議安裝附加功能。
現在已經配置好IIS的機器了,可以使用
http://localhost/通路
圖(C)
圖C顯示了IIS 7預設頁面。
安裝XSS Shell:
XSS Shell使用ASP.NET和MS-Access資料庫。是以,隻要確定你已經你的機器安裝了他們兩個。
配置XSS Shell管理界面:
下載下傳XSSShell.zip檔案後,解壓檔案,你可以看到兩個檔案夾。 分别是“XSSshell”和“XSSTunnel”
XSSshell管理界面,你需要把它配置在你的機器。複制“XSSshell”檔案夾到您的Web伺服器。
圖(D)
圖D顯示了“XSSshell”檔案夾的結構。
如圖上圖中的子檔案夾,你可以看到一個名為“db”的XSSShell子檔案夾。 複制到一個安全的地方,因為XSSshell将在db資料庫中存儲完整的資料,不管它是受害者的會話cookie或任何其他屬于受害者的資料
移動“DB”檔案夾到一個安全的地方後,在"XSSshell/admin"檔案夾下的"db.asp"檔案中配置路徑。,這樣,該接口可以了解 db 在哪裡和與它進行互動。
圖(E)
圖 E 顯示的存儲路徑為 XSSshell 的資料庫的位置。
圖(F)
圖F顯示了通路“shell.mdb”檔案的預設密碼。 你可以編輯任何你想要的密碼。
現在,您可以使用localhost ur通路管理界面(或你的域名)。
例:
http://localhost/xssshell(或)
http://yourhostname.com/xssshell預設情況下它使用端口 80,但在配置域時如果更改端口号,您需要通路該網站更改後的端口号。
配置XSS Shell:
從"XSSshell"檔案夾中打開"xssshell.asp"。
配置伺服器的路徑。即XSSshell 檔案夾所在的地方。
圖(G)
圖 G顯示在 xssshell.asp 檔案中配置的伺服器路徑。他編輯的地方在你的機器中的"XSSshell"檔案夾中的"SERVER"參數。
現在,從浏覽器通路您的管理界面。
圖(H)
圖H顯示XSSshell的管理界面。
上面的圖中可以看到三個部分。
指令:
正如前面提到的 XSSshell 有預定義的指令,進而使攻擊者容易對受害者執行任何攻擊。該部分指令包含由 shell 支援的所有指令。因為它是開源的你可以編輯它并添加您自己的功能那裡。
受害者:
受害者部分顯示了受害者的名單。
日志:
日志顯示了在受害者上執行的操作清單。
XSS Tunnel:
XSS Tunnel 就像一個代理工具,并通過XSSshell伺服器上的XSS通道捕獲流量。
圖(I)
圖I顯示XSS Tunnel的配置設定。
如前所述,XSS Tunnel就像一個代理來捕獲流量,通過XSS Tunnel打開XSSshell伺服器。 為了做到這一點,XSS Tunnel應該能夠知道XSSshell伺服器正在運作。
我們可以從“Options”頁籤配置XSSshell的XSS Tunnel資訊。
輸入伺服器位址和密碼。然後隻需確定其工作正常,點選“Test Server”。如果配置無誤,你會得到一個成功的消息。
圖(J)
圖J顯示成功建立的連接配接。
完成配置後,單擊“Start XSS Tunnel”的視窗。 然後你就可以看到所有執行XSS Tunnel的受害者。