XSS漏洞基础学习

XSS跨站脚本分类

XSS漏洞介绍

跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。故将其缩写为XSS。恶意攻击者往Web页面插入恶意Script代码,当用户浏览该页时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击者的目的

反射型XSS

非持久型XSS,这种攻击往往具有一次性。攻击者通过邮件等形式将包含XSS代码的连接发送给正常用户,当用户点击时,服务器接收该用户的请求并进行处理,然后把带有XSS的代码发送给用户。用户浏览器解析执行代码,触发XSS漏洞。

使用dvwa演示,演示时需注意设置dvwa安全性,否则可能无法成功

XSS漏洞基础学习_第1张图片

提交一个test_name,提交内容返回到页面

XSS漏洞基础学习_第2张图片

构造代码,输入并提交,触发代码,弹出对话框(包含对应Cookie值)

XSS漏洞基础学习_第3张图片

存储型XSS

持久性XSS,攻击脚本存储在目标服务器的数据库中,具有更强的隐蔽性(论坛、博客、留言板等,发帖过程中被嵌入XSS代码,帖子被目标服务器存储在数据库中,当用户进行正常访问时,触发XSS代码)

例如:dvwa中的Stored XSS

XSS漏洞基础学习_第4张图片

弹出弹窗以后,代码内容被保存,以后每次访问,都会触发代码

XSS漏洞基础学习_第5张图片

DOM型XSS

Document Object Model 使用DOM动态访问更新文档的内容、结构及样式。HTML标签都是节点,通过DOM可以对所有的节点进行修改。服务器响应不会处理攻击者脚本,而是用户浏览器处理这个响应时,DOM对象就会处理XSS代码,触发XSS漏洞。

例如:dvwa DOM XSS

点击select以后,在URL处直接修改为test,此时,修改的内容test直接反弹到了网页的选项中

XSS漏洞基础学习_第6张图片

XSS盗取Cookie

反射XSS盗取Cookie

存在反射型XSS漏洞的站点位置,利用以下链接盗取Cookie url?uname=# 用户点击链接即触发XSS漏洞。 例如:在dvwa中,提交一个script代码(注意定位的端口)#

XSS漏洞基础学习_第7张图片
image

在本地文件夹下编写一个cookie.php
image

注意路径
XSS漏洞基础学习_第8张图片
image

提交以后,页面重定向
XSS漏洞基础学习_第9张图片
image

查看cookie.txt内容,cookie值被写入文件
XSS漏洞基础学习_第10张图片
image

利用cookie会话劫持

打开cookie.txt文件,找到cookie值,访问目标站点,修改cookie为cookie.txt中的内容,即可成功访问。
XSS漏洞基础学习_第11张图片
image

劫持会话后的操作

1.进入后台寻找上传点(一句话webshell)
XSS漏洞基础学习_第12张图片
image

2.修改配置

XSS篡改网页链接

XSS篡改链接

window.onload 当窗口加载时,执行匿名函数。 例如,将所有a标签的链接替换为自定义的链接:

将篡改代码注入到对应XSS位置,以dvwa 反射XSS为例,审查元素,此时链接为官方链接
XSS漏洞基础学习_第13张图片
image

将上述代码复制并提交,所有a标签链接发生改变
XSS漏洞基础学习_第14张图片
image

篡改链接指向流量URL

刷流量,某些站点的重定向。 例如:link[j].href = "http://qq.com",点击以后跳转到腾讯网

XSS漏洞基础学习_第15张图片
image

篡改链接指向恶意URL

Beef进行恶意链接生成,利用hook.js执行其他命令

在kali中使用 beef-xss 生成恶意链接
image

使用 service apache2 start 开启服务器,使用leafpad打开/var/www/html下的index.html,将恶意链接添加进去
XSS漏洞基础学习_第16张图片
image

使用主机访问
XSS漏洞基础学习_第17张图片
image

返回kali查看beef,出现了一台新的机器,包含对应信息以及一些可执行的命令(绿色可用,红色不可用)
XSS漏洞基础学习_第18张图片
image

XSS盗取用户信息

盗取用户信息原理

克隆网站登录页面,利用存储XSS设置跳转代码,如果用户访问即跳转到克隆网站的登录页面,用户输入登录账号、密码被存储

setoolkit工具克隆网站

在kali下使用setoolkit,根据提示依次 set 1-2-3-2
XSS漏洞基础学习_第19张图片
image

复制目标网站的URL
XSS漏洞基础学习_第20张图片
image

在setoolkit中配置克隆网站的ip地址和被克隆网站的url
XSS漏洞基础学习_第21张图片
image

通过URL访问克隆网站,克隆成功
XSS漏洞基础学习_第22张图片
image
XSS漏洞基础学习_第23张图片
image

存储XSS跳转克隆网站

xss payload:

例如:在dvwa 存储型XSS中,将上述代码写入(长度受限制可通过审查元素修改)
XSS漏洞基础学习_第24张图片
image

提价以后页面跳转到克隆网站
XSS漏洞基础学习_第25张图片
image
XSS漏洞基础学习_第26张图片
image

查看盗取账号密码

当用户在克隆网站登录时,用户名和密码被发送给攻击者
XSS漏洞基础学习_第27张图片
image
XSS漏洞基础学习_第28张图片
image

没有过滤的XSS

实验环境:http://xss-quiz.int21h.jp/(一个日本安全研究员制作的练习靶场)

探测XSS过程

1.构造一个独一无二且不会被识别为恶意代码的字符串用来提交页面 例如:123thisisatestcode 2.进行代码审查,寻找构造的字符串是否在页面中显示
XSS漏洞基础学习_第29张图片
image

闭合文本标签利用XSS

1.简单payload:

提交以后,弹窗,可以进入下一关
XSS漏洞基础学习_第30张图片
image
XSS漏洞基础学习_第31张图片
image

2.闭合标签payload:(b标签表示加粗文本) " b标签被闭合,同样可以进入下一关,在payload前加自定义内容,效果一样
XSS漏洞基础学习_第32张图片
image
XSS漏洞基础学习_第33张图片
image

标签属性中的XSS

配置Chrome关闭XSS-Auditor

在实验过程中,如果无法正常提交,使用 --args --disable-xss-author 进行配置。右键属性,将上述命令填在目标位置后面
XSS漏洞基础学习_第34张图片
image

属性中的XSS闭合引入script

Ctrl+F,发现提交的参数以属性输出
XSS漏洞基础学习_第35张图片
image

闭合并引入script脚本 ">
XSS漏洞基础学习_第36张图片
image
XSS漏洞基础学习_第37张图片
image

属性中的XSS闭合引入事件

例如鼠标移动: " onmouseover=alert(document.domain)> 当鼠标移动到search文本框区域时,弹窗弹出
XSS漏洞基础学习_第38张图片
image

选择列表中的XSS

select标签:创建单选或多选菜单 option标签:可用选项 表单:搜集用户输入

burpsuite测试XSS

使用burpsuite修改提交参数
XSS漏洞基础学习_第39张图片
image

点击Forward发送包,显示内容为修改后的内容
XSS漏洞基础学习_第40张图片
image

闭合触发XSS

修改参数进行闭合
XSS漏洞基础学习_第41张图片
image

右键复制响应链接
XSS漏洞基础学习_第42张图片
image

在浏览器中访问,弹窗弹出,确定以后可进入下一关
XSS漏洞基础学习_第43张图片
image
XSS漏洞基础学习_第44张图片
image

选择参数中的XSS

HTML表单隐藏参数

隐藏域是用来搜集或发送信息的不可见元素 代码格式:

burpsuite抓包测试

XSS漏洞基础学习_第45张图片
image

审查元素,查找隐藏参数
XSS漏洞基础学习_第46张图片
image

HTML中svg

SVG(可缩放矢量图形)使用XML格式定义图像。SVG文件可以通过以下标签嵌入HTML文档: