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. 8.3.2018 1 Quick and dirty 快而脏的快餐

    Quick and dirty  快而脏的快餐 BEIJING  北京 Food delivery is a booming business. Waste is piling up, too  送餐 ...

  2. 【334】Python Object-Oriented Programming

    Reference: Python中self用法详解 __init__ 方法: 私有变量. Reference: [290]Python 函数 class 里面的 function 创建与此一致,只是 ...

  3. EL 和 JSTL

    EL 什么是EL表达式 EL(Express Lanuage) 表达式可以嵌入在jsp页面内部 减少jsp脚本的编写 EL出现的目的是要替代jsp页面中脚本的编写 作用区间 EL最主要的作用是获取四大 ...

  4. css常用属性总结:关于word-spacing和letter-spacing的使用

    前端时间项目版本迭代,修改代码时发现使用了关于word-spacing和letter-spacing.先说下使用场景,以前的项目中,经常遇到某些字符间有一些间距,我看了一些同事的代码是这么实现的: & ...

  5. 利用 Chrome 原生工具进行网页长截图

    转自https://sspai.com/post/42193 要想使用截图功能,你需要首先确保 Chrome 已升级至 59 或更高版本.在想要截图的网页中,首先按下 ⌘Command + ⌥Opti ...

  6. ASP.NET 网页动态添加客户端脚本

    在System.Web.UI.Page类中包含了RegisterStarupScript()和RegisterClientScriptBlock()两个方法,使用这两个方法可以实现向Web页面动态添加 ...

  7. vargant

    http://blog.csdn.net/openn/article/details/54927375

  8. [Jenkins]怎样自定义发出邮件的 From Email Address 和 From Name

    在Jenkins上建了一个执行SoapUI的task,想要自定义发送邮件的地址和姓名,怎么办呢? 在Editable Email Notification里面添加Pre-send Script 脚本如 ...

  9. Java程序设计8——抽象类、接口与内部类

    1 抽象类 当编写一个类时,常常会为该类定义一些方法,这些方法用以描述该类的行为方式,那么这些方法都有具体的方法体.但在某些情况下,某个父类并不需要实现,因为它只需要当做一个模板,而具体的实现,可以由 ...

  10. struts2下velocity做视图如何访问request,session等内置对象,如:原来webwork的$req

    struts2下velocity做视图如何访问request,session等内置对象(转) velocity 内置对象 struts2 requestStruts2环境下用velocity做视图时访 ...