DVWA篇之XSS反射型

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>

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

    Medium级别

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

    High级别

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

2、既然它过滤这样的字符串,那我们就用<img >标签。
Payload:<img src=1 οnerrοr=alert(1)>
DVWA篇之XSS反射型
出现了弹框。

    Impossible级别

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

转载于:https://blog.51cto.com/12332766/2117637

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值