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>


获得弹框。不仅仅要做到攻击,分析一下原理
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都带有<>,这个经过转换之后是不会起作用的,也就不能够造成弹框。

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

时间: 2024-11-08 09:04:09

DVWA篇之XSS反射型的相关文章

DVWA篇五:反射型XSS

1      测试环境介绍 测试环境为OWASP环境中的DVWA模块 2      测试说明 XSS又叫CSS (CrossSite Script) ,跨站脚本攻击.它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的,比如获取用户的cookie,导航到恶意网站,携带木马等等.利用该漏洞,攻击者可以劫持已通过验证的用户的会话.劫持到已验证的会话后,攻击发起者拥有该授权用户的所有权限. 3      测试

DVWA篇之XSS存储型

Low级别 当我们在表格中输入名字和内容就会存储到数据库,并在页面显示出来 同样的我们输入一个名字,然后在内容中输入我们的payload语句,分析是否能攻击成功. 攻击成功.这时我们的语句被存储在数据库中. 我们查看一下是否真的被存储在数据库中可以看到在第三行的记录就是我们的payload语句,没有被任何过滤,完完整整的存储在数据库中.因为是存储性的,当我们再次访问的时候肯定会直接出现弹框,这个可以刷新测试. 接下来分析一下造成这个结果的原因,我们查看源代码.trim()函数,用于去除字符串左右

代码审计中的XSS反射型漏洞

XSS反射型漏洞 一 XSS漏洞总共分三总 XSS反射型漏洞,XSS保存型漏洞,基于DOM的XSS漏洞 这次主要分享XSS反射型漏洞 基本原理:就是通过给别人发送带有恶意脚本代码参数的URL,当URL地址被打开时,特定的代码参数会被HTML解析,执行,如此就可以获取用户的COOIKE,进而盗号登陆. 特点是:非持久化,必须用户点击带有特定参数的链接才能引起. 比如hack甲构造好修改密码的URL并把密码修改成123,但是修改密码只有在登陆方乙才能修改,乙在登陆的情况下点击甲构造好的url将直接在

DVWA篇之SQL注入

SQL Injection本文需要的实验环境及搭建请访问:DVWA篇之环境搭建 SQL注入就是通过把sql语句插入到web表单提交或输入页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令 Sql注入的一般流程: 1.判断注入点2.判断注入类型3.判断数据库类型4.获取数据库权限,提权 Low级别我们先来分析一下源码,同时再一步步操作,验证我们的分析源码关键部分:我们可以看到,当进行查询参数id的时候没有进行任何过滤,很明显存在注入漏洞的.1. 这时我们试试判断注入点可以输入单引号看是否

DVWA篇六:存储型XSS

1      测试环境介绍 测试环境为OWASP环境中的DVWA模块 2      测试说明 XSS又叫CSS (CrossSite Script) ,跨站脚本攻击.它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的,比如获取用户的cookie,导航到恶意网站,携带木马等等.利用该漏洞,攻击者可以劫持已通过验证的用户的会话.劫持到已验证的会话后,攻击发起者拥有该授权用户的所有权限. 3      测试

DVWA--全等级XSS反射型(Reflected)

在练习之前我们来讲一讲XSS的基本知识吧! 什么是XSS攻击:XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中.比如这些代码包括HTML代码和客户端脚本.攻击者利用XSS漏洞旁路掉访问控制–例如同源策略(same origin policy).这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知. XSS分类:类型A,DOM型,本地利用漏洞,这种漏洞存在于页面中客户端脚本自身.(也就是web开发人

渗透场景篇--当XSS遇上CSRF

你是否有过这样的经历,你发现了一个xss,但是貌似只能叉自己,输出点只有自己可以看见.这个时候,你会觉得这个xss很鸡肋,当你就此忽略这个漏洞的时候,你可能丢掉一个发出组合技能的机会.    今天我们来介绍一个场景,当xss遇上csrf的时候,是否能打出一套漂亮的组合技能. 实验环境:     ZvulDirll[请用下面我简单修改过的版本]     下载地址:在文章最后面 一.安装:0x00:解压ZVulDrill压缩包,将其放在www目录下,也就是你的网站根目录.0x01.编辑ZVulDri

DVWA篇二:命令注入

1      测试环境介绍 测试环境为OWASP环境中的DVWA模块 2      测试说明 命令连接符: command1 && command2   先执行command1后执行command2 command1 | command2     只执行command2 command1 & command2    先执行command2后执行command1 以上三种连接符在windows和linux环境下都支持 如果程序没有进行过滤,那么我们就可以通过连接符执行多条系统命令.

DVWA篇三:任意文件上传

1      测试环境介绍 测试环境为OWASP环境中的DVWA模块 2      测试说明 由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者向某个可通过 Web 访问的目录上传任意PHP文件,并能够将这些文件传递给 PHP 解释器,就可以在远程服务器上执行任意PHP脚本 3      测试步骤 上传一个php木马文件,由于网站没有对上传文件做过滤,所以导致可以上传php木马成功. 访问木马文件,木马文件存放位置为:http://1.1.1.1/dvwa/hac