XSS分类

反射型

反射型XSS是非持久性、参数型的跨站脚本,一般来说这种类型的XSS,需要攻击者提前构造出一个恶意链接,来诱使客户点击,反射型经过后端,不经过数据库。

存储型

储存型XSS,持久化,代码是存储在服务器中的,这种类型的XSS,危害比前一种大得多。比如一个攻击者在论坛的楼层中包含了一段JavaScript代码,并且服务器没有正确进行过滤输出,那就会造成浏览这个页面的用户执行这段JavaScript代码。存储型经过后端,经过数据库。

DOMXSS

DOMSXSS比较特殊。owasp关于DOM型号XSS的定义是基于DOM的XSS是一种XSS攻击,其中攻击的payload由于修改受害者浏览器页面的DOM树而执行的,其特殊的地方就是payload比较难以检测,这种类型是利用非法输入来闭合对应的html标签。DOM不经过后端,DOM-based XSS漏洞是基于文档对象模型(Document Objeet Model,DOM)的一种漏洞,dom-xss是通过url传入参数去控制触发的。

XSS的原理

XSS的原理是WEB应用程序混淆了用户提交的数据和JS脚本的代码边界,导致浏览器把用户输入当成了JS代码来执行。XSS的攻击对象是浏览器一端的普通用户。

XSS-Challenge-Tour靶场搭建

这里我选择使用Windows10+phpstudy
从下面网址下载xss-labs-master.zip文件,解压缩后将解压缩的文件放入phpstudy的网站根目录下。

https://gitcode.net/mirrors/do0dl3/xss-labs?utm_source=csdn_github_accelerator

image.png
在浏览器输入网址如(注意之前自己修改的文件名):
127.0.0.1/xss-labs/
localhost/xss-labs/
本机ip/xss-labs
image.png

XSS-Challenge-Tour

level-1

image.png
level-1中在url中有一个传参的地方,我们可以按F12查看传参位置
image.png
我们可以测试出name后面的内容就是欢迎用户test,由此找到了输入和输出位置,也不需要闭合,直接输入就可以触发alert弹窗了。

level-2

image.png
按F12查看,发现代码嵌入到标签中,此时我们只需要让value闭合即可执行注入代码,输入”>查看是否闭合,输入后发现已经闭合。
image.png
由此我们构造如下shellcode

  1. "><script>alert(document.domain)</script>

然后构成的页面代码为

  1. <input name="keyword" value=""><script>alert(document.domain)</script>">

image.png

level-3