理解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的受害者。