理解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=<script>alert(1)</script>
當你點擊上面的網址,它會彈出一個警告框。
存儲型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的工作原理:
如圖中所示,最初攻擊者建立與 XSS Shell 的連接,并且惡意腳本插入存在存儲型或反射型XSS 的web 應用程序。一旦受害者訪問存在惡意腳本的頁面,請求將被發送到 XSS Shell 服務器。根據請求,服務器建立一個通道與受害人進行交互。
一旦受害者與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 或以上時,按照下面給出的步驟:
1.點擊“開始菜單”,進入“控制面板”。
2.點擊“程序”,然后單擊“打開或關閉windows功能”。
3.出現一個新的"Windows 功能"對話框。展開"Internet 信息服務",選擇默認的特性,必須安裝IIS。
4.如果需要,你還可以展開其他類別安裝任何附加的功能。
5.如果你想使用IIS用于評估審計目的,建議安裝附加功能。
現在已經配置好IIS的機器了,可以使用 http://localhost/訪問
圖C顯示了IIS 7默認頁面。
安裝XSS Shell:
XSS Shell使用ASP.NET和MS-Access數據庫。因此,只要確保你已經你的機器安裝了他們兩個。
配置XSS Shell管理界面:
下載XSSShell.zip文件后,解壓文件,你可以看到兩個文件夾。 分別是“XSSshell”和“XSSTunnel”
XSSshell管理界面,你需要把它配置在你的機器。復制“XSSshell”文件夾到您的Web服務器。
圖D顯示了“XSSshell”文件夾的結構。
如圖上圖中的子文件夾,你可以看到一個名為“db”的XSSShell子文件夾。 復制到一個安全的地方,因為XSSshell將在db數據庫中存儲完整的數據,不管它是受害者的會話cookie或任何其他屬于受害者的數據
移動“DB”文件夾到一個安全的地方后,在”XSSshell/admin”文件夾下的”db.asp”文件中配置路徑。,這樣,該接口可以理解 db 在哪里和與它進行交互。
現在,您可以使用localhost ur訪問管理界面(或你的域名)。
例: http://localhost/xssshell (或) http://yourhostname.com/xssshell
默認情況下它使用端口 80,但在配置域時如果更改端口號,您需要訪問該網站更改后的端口號。
配置XSS Shell:
從”XSSshell”文件夾中打開”xssshell.asp”。
配置服務器的路徑。即XSSshell 文件夾所在的地方。
在 xssshell.asp 文件中配置的服務器路徑。他編輯的地方在你的機器中的”XSSshell”文件夾中的”SERVER”參數。
現在,從瀏覽器訪問您的管理界面。
命令:
正如前面提到的 XSSshell 有預定義的命令,從而使攻擊者容易對受害者執行任何攻擊。該部分命令包含由 shell 支持的所有命令。因為它是開源的你可以編輯它并添加您自己的功能那里。
受害者
受害者部分顯示了受害者的名單。
日志:
日志顯示了在受害者上執行的操作列表。
XSS Tunnel:
XSS Tunnel 就像一個代理工具,并通過XSSshell服務器上的XSS通道捕獲流量。
如前所述,XSS Tunnel就像一個代理來捕獲流量,通過XSS Tunnel打開XSSshell服務器。 為了做到這一點,XSS Tunnel應該能夠知道XSSshell服務器正在運行。
我們可以從“Options”選項卡配置XSSshell的XSS Tunnel信息。
輸入服務器地址和密碼。然后只需確保其工作正常,點擊“Test Server”。如果配置無誤,你會得到一個成功的消息。
完成配置后,單擊“Start XSS Tunnel”的窗口。 然后你就可以看到所有執行XSS Tunnel的受害者。