DVWA-XSS模块 包括代码审计

一、Reflected Cross Site Scripting

Low等级

输入<h1>a</h1>a,查看返回的两个a的样子是否有一个a的样子是h1标签的a,如果是h1标签的a,说明<h1>标签被执行了,也就是说插入的东西被执行了,即存在XSS漏洞。运行如图1.1所示,发现两个a的样子不一致,说明存在XSS注入漏洞。

img

图1.1

构造攻击页面,如图1.2所示

img

图1.2

构造XSS攻击的语句,如图1.3所示的XSS攻击语句,访问的运行结果如图1.4所示,注意,需要进行url编码之后才能够进行执行。发现成功获取到了用户的cookie值。

img

图1.3

img

图1.4

修改cookie值如图1.5所示,然后直接访问dvwa里面任意一个模块的页面,发现不需要输入账号密码就能够进入,如图1.6所示。

img

图1.5

img

图1.6

查看源码如图1.7所示,可以发现没有对用户的输入进行任何的处理就直接插入到页面中。

img

图1.7

Medium等级

查看是否存在xss漏洞,如图2.1所示,说明存在XSS注入漏洞。

img

图2.1

查看能否使用script标签,如图2.2所示,可以发现能够直接显示出来而没有弹窗,说明对用户的输入进行了过滤。根据输出,猜测是对<script>标签进行了过滤。

img

图2.2

将script的字符换成任意大小写的字符进行尝试,发现绕过成功如图2.3所示,说明确实是对script进行过滤,但是没有对任意大小写的script进行过滤,只是过滤的小写的script。

img图2.3

因为和Low等级相比只是过滤了全部小写的script,因此获取cookie的方式和Low一致,只是需要将script进行任意大小写的转化。这里不再一一列举。

除了script标签外,还有body onload标签能够实现该功能,如图2.4所示

img

图2.4

在进行获取cookie的时候,需要进行如图2.5所示的红框进行url编码处理才能够执行成功。

img

图2.5

也可以使用href标签来进行绕过

img

查看源码,如图2.6所示。发现确实对用户输入的<script>进行了过滤。

img

图2.6

High等级

查看是否存在xss漏洞,如图3.1所示,说明存在XSS注入漏洞。

img

图3.1

查看script更换大小写之后是否被处理掉,如图3.2所示,发现确实被处理掉了。

img

图3.2

查看body onload能否使用,如图3.3所示,发现能够执行。

img

图3.3

impossible等级

查看源码,如图4.1所示。发现对用户输入的数据使用htmlspecialchars函数进行处理。就我所学习到的,我觉得攻击不了该等级,因为调用了htmlspecialchars,把进行XSS攻击的字符进行了过滤。

img

图4.1

二、Stored Cross Site Scripting

Low等级

查看是否存在XSS漏洞,如图5.1所示,发现存在XSS漏洞,因为a是h1标签的a。

img

图5.1

插入弹窗,如图5.2所示。

img

图5.2

发现弹窗正常如图5.3所示,说明代码执行正常。

img

图5.3

注入获取cookie的前端代码,并且还需要更改长度,如图5.4所示。

img

图5.4

查看cookie值,发现确实被获取到了,如图5.5所示

img

图5.5

Medium等级

经过尝试,发现name框存在XSS注入,而Message不存在。因为在name输入判断是否存在XSS注入的时候,发现字体变成h1的了;而在Message里面输入时,发现字体不是h1的字体。如图6.1所示

img

图6.1

插入script标签查看是否能够弹窗,如图6.2所示,发现被当成普通的字符串插入在页面内,并没有被当成标签插入,如图6.3所示。

image-20220601161403369

图6.2

img

图6.3

猜测是对向反射型XSS一样,对小写的stript进行了处理,没有对大小写的sript进行处理,经过验证发现确实如此,如图6.4所示,确实弹窗了。

img

图6.4

查看源码,如图6.5所示,发现对message框调用了strip_tags(去除HTML、XML、PHP标签)、mysql_real_escape_string(对sql语句的特殊字符进行转义)、htmlspecialchars(把预定义的字符串转换为HTML实体)来对用户输入在message框进行严格的过滤,基本上杜绝了XSS攻击;而name框只是进行了对全部为小写的script进行了过滤,很显然在name框存在XSS漏洞。

img

图6.5

High等级

插入判断是否存在XSS漏洞的语句,如图7.1所示。发现结果的a是h1格式的a,如图7.2所示,说明确实是存在XSS漏洞。并且是Name框的。

img

img

图7.2

插入任意的大小写script之后,发现并没有弹窗,应该是对script进行了过滤。如图7.3所示。

img

图7.3

插入body标签,如图7.4所示,发现也不能够成功跳转。

img

图7.4

插入img标签,如图7.5所示,发现弹窗成功,如图7.6所示。

img

图7.5

img

图7.6

查看源码如图7.7所示,发现message框进行了和存储型XSSMedium等级一致的防范,但是name框只是采取了正则过滤和调用mysql_real_escape_string函数进行过滤。

img

图7.7

impossible等级

查看否存在XSS漏洞,如图7.8所示,发现执行的结果是将“<”符号当成小于号来处理的。a并不是是h1标签的a,说明不存在XSS漏洞或者说对XSS攻击防范很到位。

img

图7.8

查看源码如图7.9所示,检测了token,name框和message使用一致的过滤,就我目前所学习到的,不能对该难度进行攻击。

img

图7.9

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值