概述

XSS--DVWAXSS--DVWA

XSS--DVWA

反射型

Low等级

1、尝试正常操作,输入XSS

XSS--DVWA

输入<xss>,没有了,发现hello后面出现了一个xss标签,似乎我们可以注入HTML标签

XSS--DVWA

接下来尝试进行弹窗<script>alert(/xss/)</script>

XSS--DVWA

查看元素,成功注入了JS脚本,说明这个地方存在XSS漏洞

 

XSS--DVWA

JS中的弹窗函数

XSS--DVWA

XSS攻击思路

XSS--DVWA

 

1、攻击者web 设计:新建一个cookie.php文件内容为将GET请求参数cookie存储在cookie变量里,将偷取到的cookie写到cookie文件中

XSS--DVWA

2、构造攻击JS:document.location的含义是将页面的内容定位到指定的地址,参数里面写上刚刚新建的PHP文件的网址,将document.cookie 赋值给php?cookie= ,cookie值最终会出现在127.0.0.1的cookie.txt中。

XSS--DVWA

3、构造攻击URL:已知DVWA网站的name 参数(蓝色字体部分)存在反射型XSS,将刚刚构造好的JS脚本写道name参数的后面。

XSS--DVWA

4、这样直接访问并不会成功,还要对参数进行URL编

XSS--DVWA

5、发送这个链接给用户,点击后攻击者的服务器上就会生成一个cookie.txt文件,文件内容为被攻击用户的网站登陆凭证即(即DVWA的登陆cookie信息)PHPSESSID就是被攻击用户的凭证、

XSS--DVWA

6、劫持会话,攻击者访问DVWA网站,修改cookie

XSS--DVWA

7、随后直接访问DVWA的index.php,成功以admin的身份登陆

XSS--DVWA

Medium等级

1、尝试low等级的方法已经失效了,发现script标签已经被过滤

XSS--DVWA

采用嵌套的方法,成功弹窗,大小写混合同样成功绕过

XSS--DVWAXSS--DVWA

High等级

1、尝试前面的方法都失效了,尝试image标签,成功弹窗

XSS--DVWA

 

,说明服务端只是过滤了script标签,其他的标签并没有做限制

XSS--DVWA

用iframe标签,同样成功弹窗

XSS--DVWA

用firebug查看元素,成功注入了iframe标签

XSS--DVWA

Impossible等级

输入XSS--DVWA发现除了单引号之外,全部被HTML编码了

XSS--DVWA

用查看源码的功能发现多了如下图所示的函数

XSS--DVWA

该函数可以HTML编码以下五个特殊的字符,在这个函数里面默认是不编码单引号的,要加上下图红框中的参数才会对单引号进行编码,在DVWA中不编码单引号不会有危险,但是在其他的场景中,不编码单引号同样会有危险。

XSS--DVWA

存储型

发现限制了输入长度,XSS代码输不完整

XSS--DVWA

用firebug查看发现name限制长度为10message限制长度为50

XSS--DVWA

这里可以通过改包绕过前端,发包后观察浏览器返回结果成功绕过限制

XSS--DVWAXSS--DVWA

存储型和反射型利用基本一致

Low等级

通过改包输入script标签,弹了两次窗

XSS--DVWAXSS--DVWAXSS--DVWA

用firebug查看元素,name和message都成功插入了JS

XSS--DVWA

存储型XSS时存在数据库中的,弹窗一直存在,可以重置数据库,弹窗就消失了

XSS--DVWA

Medium等级

同样改包,采用大小写绕过,查看元素,name注入成功,message注入失败,只要有一个弹窗成功我们就可以利用。

XSS--DVWA

HIgh等级

 

同样改包,采用XSS--DVWA绕过,查看元素,name注入成功,message同样过滤了

XSS--DVWA

Impossible等级

同样使用了转义的函数htmlspecialchars这个函数

XSS--DVWA

修复

这些限制要在服务端做,存储型XSS的绕过就是对输入长度的限制没有在服务端做。

XSS--DVWA

输出到html中进行html编码,输出到JS中进行JS转义

XSS--DVWA

相关文章: