码迷,mamicode.com
首页 > 其他好文 > 详细

DVWA篇之XSS反射型

时间:2018-05-17 19:16:23      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:web   dvwa   

1、什么是XSS

    XSS攻击全称跨站脚本攻击,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。

XSS攻击分成两类:

(1)、一类是来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句。
(2)、另一类则是来自外部的攻击,主要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。
如当我们要渗透一个站点,我们自己构造一个有跨站漏洞的网页,然后构造跨站语句,通过结合其它技术,如社会工程学等,欺骗目标服务器的管理员打开。

XSS分为:存储型和反射型

    存储型XSS:存储型XSS,持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中。这种XSS比较危险,容易造成蠕虫,盗窃cookie(虽然还有种DOM型XSS 但是也还是包括在存储型XSS内)

    反射型XSS:非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容) 一般容易出现在搜索页面

开始我们的实验

        Low级别

1、构造我们常用的payload:<scrpit>alert(1)</script>

技术分享图片
获得弹框。不仅仅要做到攻击,分析一下原理
2、这里可以直接查看源码,点击右下角的view source。查看源码
技术分享图片
源码里存在一个判断语句,arrary_key_exists()函数判断$_GET的值中是否存在“name”键名。并且$_GET[‘name’]的值是不是不为空,满足这些条件,直接输出下面的输出语句。
这串源码没有特别的地方,不存在其他处理函数,典型的xss可攻击源码。所以可以直接用我们的payload攻击

    Medium级别

1、尝试用第一种方法,看看有什么不同
技术分享图片
发现我们输入进去的<script></script>标签被过滤掉了,猜测利用了什么过滤函数。既然它能够将这个标签过滤,我们就构造一个不用这个标签的payload试一试。
2、构造payload:<img src=1 onerror=alert(1)>。
解释:<img ..>标签是添加一个图片,src,指定图片的url,onerror是指定加载图片时如果出现错误则要执行的事件
这里我们的图片url肯定是错误的,这个弹框事件也必定会执行
使用我们的payload攻击一下试一试。
技术分享图片
发生了弹框,可以看出,后台处理的时候应该只过滤了<script>标签
3、我们查看一下源码:
技术分享图片
我们可以看到,在将获取到的name值得时候,经过str_replace()函数过滤,将name值中的<script>标签转化为空。然后在将name值的结果输出。
所以当我们使用low级别的payload的时候我们的<script>标签被过滤掉。
4、特别注意的是这个函数也不太完美,因为它区分大小写。所以当我们使用low级别中的payload大写的时候,一样可以绕过它的过滤。我们试一下
Payload:<SCRIPT>alert(1)</SCRIPT>
技术分享图片
一样可以弹框,当然绕过的还有很多方式。
处理这样的paylaod的时候最好再在前面加一个strtolower()函数,将传递的name值得字符统统改为小写。这样就可以不管大小写都能逃不出去。(只针对这一个payload)

    High级别

1、当我们输入带有<script>标签的payload的时候,不管大小写,过滤的什么都不剩只有>,这是什么情况,我们查看一下源码:
技术分享图片
这里利用了preg_replace()函数,将包含<script的字符,不管大小写,不管后面跟着1个或多个与之相同的字符都转换为空。

2、既然它过滤这样的字符串,那我们就用<img >标签。
Payload:<img src=1 onerror=alert(1)>
技术分享图片
出现了弹框。

    Impossible级别

1、正如级别含义,不可能的,这个很难做到弹框
查看源码
技术分享图片
2、里面处理$_GET[‘name’]的值得时候利用了函数htmlspecialchars(),将值里面的预定义函数,都变成html实体
技术分享图片
所以我们以上的payload都带有<>,这个经过转换之后是不会起作用的,也就不能够造成弹框。

DVWA篇之XSS反射型

标签:web   dvwa   

原文地址:http://blog.51cto.com/12332766/2117637

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!