DVWA系列---反射型 XSS(Reflected Cross Site Scripting)

1、Low

测试代码:<script>alert(document.cookie)</script>,弹出当前Cookie
在这里插入图片描述
成功,未做任何防范。

查看源码:
在这里插入图片描述
其中:array_key_exists() 函数检查某个数组中是否存在指定的键名,如果键名存在则返回 true,如果键名不存在则返回 false。

2、Medium

继续尝试刚才的语句<script>alert(document.cookie)</script>时,出现以下内容:
在这里插入图片描述
再次尝试:<img src = alert(1)>,成功爆出
在这里插入图片描述
判断应该是对<script> </script>进行了转义。

尝试大小写绕过<sCript>alert(1)</scRipt>,成功注入!

尝试嵌套绕过<sc<script>ript>alert(1)</script>,成功注入,且判断出只对<script>进行了转义。

查看源码:
在这里插入图片描述
可见,只使用str_replace()函数对<script>进行了过滤,且该函数区分大小写。

3、High

尝试大小写绕过:<sCript>alert(1)</scRipt>
在这里插入图片描述
结果是一个尖括号:>

尝试普通注入:<script>alert(1)</script>,结果是:>
尝试添加 > 注入:<script>alert(1)</script>>,结果是:>>
尝试嵌套注入:<sc<script>ript>alert(1)</script>,结果是:>
尝试img标签:<img src onerror=alert(1)>,成功注入
尝试svg标签:<svg onload=alert(1)>,成功注入

根据以上结果判断,依然是对<script>标签进行了过滤。

查看源码:
在这里插入图片描述
源码显示,使用正则进行了过滤,因此嵌套和大小写绕过都失效。

根据正则,白盒测试,进行编码绕过。
对<>进行HTML编码,此时script语句为:&lt;script&gt;alert(1)&lt;/script&gt;,尝试注入:
在这里插入图片描述
查看页面元素,显示成功注入,但是语句被放入了pre实体文本标签内,尝试闭合pre标签,重新注入,但是依然失败。到此

4、Impossible

在这里插入图片描述
htmlspecialchars() 函数将内容转为HTML实体文本,又加入了Token,打消了任何念头。

发布了88 篇原创文章 · 获赞 121 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43968080/article/details/104107317
今日推荐