一、实验环境

一台win10电脑,既做服务器端,也是客户端。

二、实验原理

反射型XSS用户通过Web客户端提交给服务端的数据,立刻用于解析和显示该用户的结果页面(数据没有在服务端存储)。

存储型XSS用户通过Web客户端提交给服务端的数据,由服务端保存,然后永久显示在其他用户的页面上。

三、实验步骤

(1)登录dvwa,点击反射型xss low级别:

2.测试输入

  1. 查看源码并没有任何字符处理措施:

(2) 将级别改为meduim,执行测试

说明可能存在字符消除函数,删掉了

所以输入<scri试试

成功

查看源码,只是经过了简单的将发现输入到l时无法再进行输入

查看网页源代码,发现输入最大长度为10:

所以尝试使用burp抓包修改参数

成功弹窗

数据库中成功加入javascript代码,而且在每次刷新页面加载评论时都会出发script代码

刷新页面,如图:

2.更改为medium级别

继续利用burp修改参数为发现返回:

并没有出现弹窗,并且用户名变为了alert(‘xss’)所以猜测可能使用了字符替代函数,因为js区分大小写,这次可以使用大小写来绕过:

成功绕过,显示弹窗,且每次刷新都会弹窗

查看数据库,成功添加

3.改为high级别,查看源码继续使用了正则表达式

所以不使用< script >弹窗,改用img标签

成功弹窗

查看数据库,成功添加,再后来每一次刷新都会触发一次js代码