0x1:回顾前文疑惑“先闭合,在构造”

上一篇,我们说到了xss的一个触发精髓,“先闭合,在构造”,对于前面的先闭合,我们来简单的解释一下:

  1.   首先说,为什么要闭合?

因为HTML标签都是成对出现的,比如说这样:<h1>我是标题</h1>

前面的“<h1>”表示标签的开始,后面的“</h1>”表示标签的结束。

其他的标签也是一样:

<a>我是链接</a>

<font>我是文本</font>

等等其他标签·······

当然HTML中也有一些单标签,这里我们不详细看,先来分析分析前面的标签:

<input name="p1" size="60" value="" type="text">

很明显,这是一个标签的前面开始的一部分,当然,input也能当做单标签用,这里不解释。那么什么是先闭合呢?

实际上就是利用的双标签一个开始,一个结束的思想,因为在编辑框输入的值在“value”这个属性中,所以当我们构造先闭合,即就是让“value”两边的值各变成一个标签。

<input name="p1" size="60" value=" " > " type="text">

重点看黑色的那一部分:

前面的一部分变成了这样,这就闭合了前面的标签,我们在闭合后面的标签:

<input name="p1" size="60" value="">

<script>alert(/简单的XSS/)</script>

<"" type="text">

这个时候你能理解先闭合在构造的意思了吗?

0x2:(正题)什么是反射型XSS?

反射型XSS也被称为非持久性CSS。

当用户访问一个带有XSS代码的URL请求时,服务器端接收数据后处理,然后把带有XSS代码的数据发送到浏览器,浏览器解析这段带有XSS代码的数据后,最终造成XSS漏洞。

这个过程就像一次反射,故称为反射型XSS。

对这段话理解后,于是我们发现,完成xss攻击,需要具备两个条件:

  1. web页面注入恶意代码
  2. 恶意代码能够被浏览器成功的执行

反射型攻击,恶意代码并没有保存在目标网站,而是通过引诱用户点击一个链接到目标网站的恶意链接来实施攻击的。也就是说,反射型的xss经过了后端,但没有经过数据库;

0x2:( 上手实践 ) 根据原理本地构造验证反射型xss

本地环境准备:

Web容器:phpStudy

Web容器:phpStudy下载地址:http://phpstudy.php.cn/phpstudy/PhpStudy20180211.zip

操作系统:Windows

编辑器:任意使用

开始搭建:

下载好phpStudy后安装到你想要的位置(看你想要安装到那的位置,但路径中不能有中文)

在这里我放到的是D盘

因为安装后会自动运行phpStudy并自动初始化所以,初始化后不要将phpStudy随意移动位置,如要改动位置,记得删除配置文件!

然后启动

接着

点击其他选项菜单,在选择网站根目

新建文件:xss.php

(可以先新建个文本文档在用命令行将扩展名改为.php,我就是这么做的)

在本文件夹里按住“shift”后鼠标右键选择“在此处打开命令窗口”

输入命令:ren *.txt xss.php 后回车

我们看到文件名已经变了

然后用编辑器(这里我用的vs编辑器 , 用习惯了编辑器无影响)打开这个文件,输入以下内容并保存:

<form action="" method="get">

    <input type="text" name="xss"/>

    <input type="submit" value="test"/>

</form>

<?php

$xss = @$_GET['xss'];

if($xss!==null){

    echo $xss;

}

?>

现在先不解释每行代码的意思(第三节讲解),我们先完成整个本地演示,依旧是这个菜单,

选择My Home Page

会在浏览器打开本地站点页面

这时候,我们访问xss.php

看到这熟悉的编辑框了没?

这时候输入前面学到的xss,看看效果?

0基础浅谈反射型xss(2)的更多相关文章

  1. 0基础浅谈反射型xss (1)

    0X1:在学习xss之前,先快速学习相关的HTML代码 1.  <input>标签 文本域用法: <input  type="text" /> Type的作 ...

  2. 【推荐】JAVA基础◆浅谈3DES加密解密

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  3. C#核心基础--浅谈类和对象的概念

    浅谈类和对象的概念 一.什么是类?什么是对象? 学习一门面向对象编程语言,我们必须得知道什么是类?什么是对象? 类(Class)实际上是对某种类型的对象定义变量和方法的原型.它表示对现实生活中一类具有 ...

  4. Oauth2.0安全问题浅谈

    大家如果对Oauth还不是很了解可以先看下这篇文章https://www.cnblogs.com/maoxiaolv/p/5838680.html 我这篇博客主要是总结一下安全测试过程中遇到Oauth ...

  5. C#基础---浅谈XML读取以及简单的ORM实现

    背景: 在开发ASP.NETMVC4 项目中,虽然web.config配置满足了大部分需求,不过对于某些特定业务,我们有时候需要添加新的配置文件来记录配置信息,那么XML文件配置无疑是我们选择的一个方 ...

  6. c#核心基础 - 浅谈 c# 中的特性 Attribute)

    特性(Attribute)是用于在运行时传递程序中各种元素(比如类.方法.结构.枚举.组件等)的行为信息的声明性标签.可以通过使用特性向程序添加声明性信息.一个声明性标签是通过放置在它所应用的元素前面 ...

  7. JS基础——浅谈前端页面渲染和性能优化

    加载html中的静态资源 其中,加载静态资源的过程,一般为浏览器根据DNS服务器得到域名的IP地址,然后向这个IP的机器发送http请求,服务器收到.处理并返回http请求,浏览器得到返回http请求 ...

  8. Zabbix4.0安装浅谈

    一.此篇文章存在意义 针对超级小白,大神绕过 在zabbix官网https://www.zabbix.com/download里,需要数据库,但是并没有指导小白的我们如何安装数据库,此文章包含了Mys ...

  9. Java 面向对象 知识点基础浅谈

    1.类和对象的关系 类是一个抽象的模板,对象是根据模板制造出来的,只有类建立之后,对象才可以在类中实例化对象.举个例子讲:我要用黄金浇筑一块砖,我会在一个模型里进行,这样才能有砖的形状,那模型即是类, ...

随机推荐

  1. 迷你MVVM框架 avalonjs 0.92发布

    本版本最大的改进是引入ms-class的新风格支持,以前的不支持大写类名及多个类名同时操作,新风格支持了.还有对2维监控数组的支持.并着手修复UI框架. 重构 class, hover, active ...

  2. 每月IT摘录201806

    一.技术 1.架构师的技术升级要点:用两个字来描述:集群,用三个字:分布式,再用多点的文字:把海量的流量和数据合理分摊到数量合适的机器上. 想明白这点,后面就能知道该学哪些了,比如流量分摊时得负载均衡 ...

  3. 关于scanf的算法(位操作)

    题目要求:输入有12行数据,每一行分别是每个月的余额.计算他们的平均值后输出.在输出时要在前面加上“$”,并在四舍五入后保留小数点后两位. 方法1: float a,b; main() { ;) b+ ...

  4. Thrift 实现 JAVA,PHP,C#,Python 互相通信

    Thrift介绍   https://www.ibm.com/developerworks/cn/java/j-lo-apachethrift/index.html 首先需要下载 Thrift.exe ...

  5. asp.net页如何获取母版页控件

    获取母版页的相关内容有两种方法 1 通过findcontrol找控件ID需要在此事件中~因为Page_load中时是先内容页加载然后才是母版页加载 protected void Page_LoadCo ...

  6. 33-wxpython多个frame之间的信息共享

    https://blog.csdn.net/xyisv/article/details/78576932 https://blog.csdn.net/tianmaxingkong_/article/d ...

  7. 如何求数字n的因数个数及因数和

    我们有可能在某些数学题中会求到某个数的因数和,那我们怎么求呢? 因为我们知道任意一个合数都可以由两个或多个质数相乘得到,那么我们就先分解质因数吧 例:我们随便去一个数吧,嗯,就108了,好算... 我 ...

  8. yarn 完美替代 npm

    众所周知,npm是nodejs默认的包管理工具,我们通过npm可以下载安装或者发布包,但是npm其实存在着很多小问题,比如安装速度慢.每次都要在线重新安装等,而yarn也正是为了解决npm当前存在的问 ...

  9. Executing a Finite-Length Task in the Background

    [Executing a Finite-Length Task in the Background] Apps that are transitioning to the background can ...

  10. CodeForces 681A A Good Contest (水题)

    题意:给定 n 个人和before, after的分数,让你找 before 的分数大于等于2400并且before 小于 after. 析:看完题意就知道怎么算了吧..不用说了 #include & ...