DVWA通关攻略之XSS

XSS(Cross Site Script)又叫CSS,即跨站脚本攻击,指的是攻击者通过在Web页面写入恶意脚本,当有用户浏览该页面时,Web页面里的恶意脚本会被运行,从而达到控制用户浏览器进行操作的攻击方式。XSS使用的攻击代码是-JavaScript,其攻击目标是普通用户,并不是服务器。

XSS漏洞分为反射型XSS、存储型XSS、DOM型XSS三类。其中反射型XSS漏洞是指在用户发送请求的时候,请求中的js脚本发给web服务器,web服务器在接收到请求后没有对js脚本进行任何过滤和限制,即原封不动的把请求内容响应给客户端,使得客户端浏览器在解析过程中触发XSS,反射型XSS影响的是独立的单个用户,且在处理过程中和数据库服务器(DBS)进行交互;DOM型XSS是基于文档对象模型的一种漏洞,其触发点在DOM当中,它可以在不与服务器进行交互的情况下触发,影响的也是独立的单个用户,且与反射型XSS一样,所产生的影响都是一次性的;存储型XSS又叫持久性XSS,其恶意脚本被持久化存储在服务器中,每当有用户访问该页面的时候都会触发代码执行,这种XSS漏洞非常危险,且造成的危害比较持久,容易造成大量盗窃cookie。

关于XSS的常用绕过手法有:双写绕过或大小写绕过、包含onerror属性的img标签、javascript:伪协议绕过、抓包编码绕过等。

XSS漏洞可造成的危害有:被窃取管理员账号或cookie、后台增删改文章、会话劫持、键盘记录、XSS钓鱼攻击、XSS蠕虫、网页挂马等,严重影响用户的正常使用。

关于XSS漏洞的主要防御方式有:对输入内容(和URL参数)进行过滤,对输出内容进行编码。也就是对提交的所有内容及url中的参数进行过滤,过滤掉会导致脚本执行的相关内容;然后对动态输出到页面的内容进行html编码或转义处理,使脚本无法在浏览器中执行;以及设置httponly,防止客户端读取cookie等方式。

反射型XSS(Reflected)

一、Low级别

1.安全级别修改为low

2.查看源代码发现未进行限制

3.尝试使用带有alert的script语句

4.出现弹窗,表明注入成功

二、Medium级别

1.安全级别修改为medium

2.查看源代码,发现对‘<script>’进行了限制

3.我们可以尝试使用大小写绕过或者双写绕过的方式进行注入

4.两种方式都出现弹窗,表明均可注入成功

三、High级别

1.安全级别修改为high

2.查看源代码,发现其使用严格的正则表达式对script语句进行限制

3.考虑用img语句尝试绕过(<img src=1 οnerrοr=alert(1)>)

4.出现弹窗,表明注入成功

四、Impossible级别

1.安全级别修改为Impossible

2.查看源代码,发现对输入内容进行了实体化编码处理,无法绕过

存储型XSS(Stored)

(每次操作完成后记得点击“Clear Guestbook”,不然每次切回页面会出现弹窗,这也说明存储型XSS危害较大且持久)

一、Low级别

1.安全级别修改为low

2.查看源代码发现未进行限制,使用带有alert的script语句尝试绕过

3.出现弹窗,表明注入成功

二、Medium级别

1.安全级别修改为Medium

2.查看源代码,发现其对message模块的输入内容进行了实体化编码处理,所以考虑从name模块尝试绕过,且源代码中对name模块的输入内容中的‘<script>’进行了限制,所以我们采用大小写绕过或者双写绕过的方式

3.发现name模块对输入内容的字符长度进行了限制

4.我们按F12查看前端代码,选择name模块这一区域,对maxlength进行修改,然后正常输入语句

5.出现弹窗,表明注入成功

三、High级别

1.修改安全级别为High

2.查看源代码,发现其在Medium级别的基础上进一步限制

3.修改长度限制后在name模块输入img语句尝试绕过,发现出现弹窗,表明注入成功

四、Impossible级别

1.安全级别修改为Impossible

2.查看源代码,发现对message模块和name模块的输入内容都进行了实体化编码处理,无法绕过

DOM型XSS(DOM)

一、Low级别

1.安全级别修改为Low

2.查看源代码,发现未进行限制

3.发现只有url地址栏可输入内容,用带有alert的script语句尝试绕过

4.按回车键(enter)出现弹窗,表明注入成功

二、Medium级别

1.安全级别修改为Medium

2.查看源代码,发现对”<script”进行限制,使用img语句尝试绕过

3.未出现弹窗,我们查看前端代码,发现需要构造闭合

4.在url地址栏输入</option></select><img src=1 οnerrοr=alert(1)>,回车后出现弹窗,表明注入成功

三、High级别

1.安全级别修改为high

2.查看源代码,发现白名单,我们需要在Medium基础(构造闭合)上添加注释符#

3.出现弹窗,表明注入成功

四、Impossible级别

1.安全级别修改为Impossible

2.查看源代码,未发现有用信息

3.查看前端代码,发现Impossible级别对比High级别未经过解码处理,无法绕过

  • 21
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值