XSS--DVWA

概述

反射型

Low等级

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

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

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

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

 

JS中的弹窗函数

XSS攻击思路

 

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

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

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

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

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

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

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

Medium等级

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

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

High等级

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

 

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

用iframe标签,同样成功弹窗

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

Impossible等级

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

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

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

存储型

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

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

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

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

Low等级

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

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

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

Medium等级

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

HIgh等级

 

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

Impossible等级

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

修复

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值