0基础浅谈反射型xss(2)
0x1:回顾前文疑惑“先闭合,在构造”
上一篇,我们说到了xss的一个触发精髓,“先闭合,在构造”,对于前面的先闭合,我们来简单的解释一下:
- 首先说,为什么要闭合?
因为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攻击,需要具备两个条件:
- 向web页面注入恶意代码
- 恶意代码能够被浏览器成功的执行
反射型攻击,恶意代码并没有保存在目标网站,而是通过引诱用户点击一个链接到目标网站的恶意链接来实施攻击的。也就是说,反射型的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)的更多相关文章
- 0基础浅谈反射型xss (1)
0X1:在学习xss之前,先快速学习相关的HTML代码 1. <input>标签 文本域用法: <input type="text" /> Type的作 ...
- 【推荐】JAVA基础◆浅谈3DES加密解密
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- C#核心基础--浅谈类和对象的概念
浅谈类和对象的概念 一.什么是类?什么是对象? 学习一门面向对象编程语言,我们必须得知道什么是类?什么是对象? 类(Class)实际上是对某种类型的对象定义变量和方法的原型.它表示对现实生活中一类具有 ...
- Oauth2.0安全问题浅谈
大家如果对Oauth还不是很了解可以先看下这篇文章https://www.cnblogs.com/maoxiaolv/p/5838680.html 我这篇博客主要是总结一下安全测试过程中遇到Oauth ...
- C#基础---浅谈XML读取以及简单的ORM实现
背景: 在开发ASP.NETMVC4 项目中,虽然web.config配置满足了大部分需求,不过对于某些特定业务,我们有时候需要添加新的配置文件来记录配置信息,那么XML文件配置无疑是我们选择的一个方 ...
- c#核心基础 - 浅谈 c# 中的特性 Attribute)
特性(Attribute)是用于在运行时传递程序中各种元素(比如类.方法.结构.枚举.组件等)的行为信息的声明性标签.可以通过使用特性向程序添加声明性信息.一个声明性标签是通过放置在它所应用的元素前面 ...
- JS基础——浅谈前端页面渲染和性能优化
加载html中的静态资源 其中,加载静态资源的过程,一般为浏览器根据DNS服务器得到域名的IP地址,然后向这个IP的机器发送http请求,服务器收到.处理并返回http请求,浏览器得到返回http请求 ...
- Zabbix4.0安装浅谈
一.此篇文章存在意义 针对超级小白,大神绕过 在zabbix官网https://www.zabbix.com/download里,需要数据库,但是并没有指导小白的我们如何安装数据库,此文章包含了Mys ...
- Java 面向对象 知识点基础浅谈
1.类和对象的关系 类是一个抽象的模板,对象是根据模板制造出来的,只有类建立之后,对象才可以在类中实例化对象.举个例子讲:我要用黄金浇筑一块砖,我会在一个模型里进行,这样才能有砖的形状,那模型即是类, ...
随机推荐
- 2017面向对象程序设计(Java)第六周学习总结
转眼间,2017年的法定节日已经休完,我们的java学习也已经进行了六周.下面,我将对上个礼拜的学习情况进行总结. 首先,是学习态度问题.虽然同学们已经从家或者各个旅游景点回来,但是心还是没回来.有同 ...
- shared_ptr&scoped_ptr&weak_ptr
[RAII - Resource Acquisition Is Initialization] 获得一个资源的时候,不管这个资源是对象.内存.文件句柄或者其它什么,你都要在一个对象的构造函数中获得它, ...
- s 销售视图数据
INSERT,需将公司ID匹对到以下EXCEL表 INSERT,需将公司ID匹对到以下EXCEL表 [Public] ConnectString=host="siebel://10.10.0 ...
- 0. ACM系列算法
0.1 数学 0.1.1 概率 http://www.cnblogs.com/jiu0821/tag/%E6%A6%82%E7%8E%87/ 0.1.2 代数 0.1.2.1 Polya 0.1.2. ...
- Unity5 Shader Stripping 导致 LightMap 全部丢失的解决方法
当使用 SceneManager.LoadScene 的时候,会自动载入LightMap 和 NavMesh的数据.然后再对MeshRender 进行指定 LightMapIndex 以及 Light ...
- Jdeveloper下Svn的使用
Jdeveloper下Svn的使用 官方pdf:jdeveloper使用svn 官方网地址:http://www.oracle.com/technetwork/cn/java/subversion-0 ...
- C语言中的序列点和副作用
参考: http://www.2cto.com/kf/201210/161225.html
- 《OpenGL超级宝典》编程环境配置
最近在接触OpenGL,使用的书籍就是那本<OpenGL超级宝典>,不过编程环境的搭建和设置还是比较麻烦的,在网上找了很多资料,找不到GLTools.lib这个库.没办法自己就借助源码自己 ...
- LIst和table的转换
public static class DataTableExtensions { /// <summary> /// 转化一个DataTable /// </summary> ...
- velocity在html中换行符转换
<td colspan="3" class="tdContent2">$!obj.getDealInfo().replaceAll("\r ...