0X1:在学习xss之前,先快速学习相关的HTML代码

  1. 1.  <input>标签

文本域用法:

<input  type="text" />

Type的作用:type 属性值规定其<input>的作用,输入字段拥有很多种形式,输入的字段可以是文本字段、复选框、掩码后的文本控件、单选按钮、按钮等。

运行结果:

文本域可以输入各种文本,input常用于表单,至于表单如何使用,这里先不提。

0X2:认识XSS漏洞,并自己构造一个基础的XSS

XSS的实质其实是HTML代码与Javscript代码的注入。

但由于XSS的攻击对象是与客户对等的浏览器端,因此常常不被开发者所重视。

一般意义上的XSS通常可以用简单的方法检测出来:当用户输入中某个参数的全部或其中一部分,原封不动地在源代码里出现时,我们就可以认为这个参数存在XSS漏洞。

XSS的类型分为两种,分别是反射型和存储型,这里,我们演示的是反射型。

实际操作

先找一个具有文本框的网站(备注:网站未安装防火墙,安全狗之类的防护)

这里我找到的是一个xss站点:

在这里我们看到了一个输入框,我们直接按下F12进行审查元素,查看这个输入框的代码

我们看到了熟悉的input 标签,并且这个标签正好是文本域

那我们来解释一下这个标签中的所有代码:

Name和size暂时不解释,因为没有意义,这里我们重点看value和type,在前面,我们已经了解到,type是表示这个标签的类型,其中的text 表示这个input是文本域,那么,value又是什么呢?

我们来简单的了解一下:

这里我们看到,value就是规定这个文本域里的值

做个简单的演示:

这下,我们能读懂这个网站的input的意思了吧?

接着,我们来构造xss

JS语句:

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

这一个语句我们暂时不做说明

先来看看咋构造,精髓:“先闭合,在构造”

闭合什么意思呢?

用一段代码演示:

原来的内容:

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

我们输入的内容:

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

然后整个就变成了这样:

<input name="p1" size="60" value=""><script>alert(/简单的XSS/)</script><"" type="text">

这里,我们可以看出,代码已经被改变了,这时候我们在提交内容,就会执行这个页面,而从代码中可以看出,这个input标签已经被改变了,变成了三部分:

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

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

3.<"" type="text">

也就是说,我们的“<script>alert(/简单的XSS/)</script>”这一段代码被页面执行了。

实际演示:

提交后弹出了提示消息:

然后我们再看看这个页面的源码:

<input name="p1" size="60" value=""><script>alert(/简单的XSS/)</script><"" type="text">

这时候,你能理解原理了吗?

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

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

    0x1:回顾前文疑惑“先闭合,在构造” 上一篇,我们说到了xss的一个触发精髓,“先闭合,在构造”,对于前面的先闭合,我们来简单的解释一下:   首先说,为什么要闭合? 因为HTML标签都是成对出现的 ...

  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. Jmeter Http接口性能测试

    Jmeter Http接口性能测试 1.      启动Jmeter Jmeter下载解压即可使用,Jmeter启动,点击D:\ProgramFiles\jmeter\apache-jmeter-2. ...

  2. python's default parameter

    [python's default parameter] 对于值类型(int.double)的default函数参数,函数不会保存对默认类型的修改.对于mutable objectd类型的默认参数,会 ...

  3. iOS load和initialize的区别

    可能有些还不清楚load和initialize的区别,下面简单说一下: 首先说一下 + initialize 方法:苹果官方对这个方法有这样的一段描述:这个方法会在 第一次初始化这个类之前 被调用,我 ...

  4. Condition Variable使用及其Thread Cancellation线程取消

    条件变量Condition Variable的一般用法: 唤醒用法: struct { pthread_mutex_t mutex; pthread_cond_t cond; //whatever v ...

  5. Python之模块和包学习

    模块简介 python是由一系列的模块组成的,每个模块就是一个py为后缀的文件,同时模块也是一个命名空间,从而避免了变量名称冲突的问题.模块我们就可以理解为lib库,如果需要使用某个模块中的函数或对象 ...

  6. 超详细JSON解析步骤

    JSON简介 JAVAScript Object Notation是一种轻量级的数据交换格式 具有良好的可读和便于快速编写的特性. 业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了 ...

  7. Vivado安装教程

    Vivado的各个版本的安流程其实都差不多,本教程用Vivado2016.4为例进行安装,同样适用于之前和之后的各个版本. 下载好安装包后打开,双击xsetup.exe运行安装程序 弹出的窗口,提示现 ...

  8. Android-自定义开关(ViewGroup版)

    虽然实现自定义开关,通常情况下都是继承View,比较合理方便快捷一些 但是我今天想去继承ViewGroup来实现自定义开关来玩玩 效果图: 布局代码: <!-- 自定义开关ViewGroup版 ...

  9. 自我介绍和Github的初次体验

    姓名:袁宇鹏    学号:1413042045    班级:网络工程142    兴趣爱好:篮球,看书 写过的代码:用C++写过,只能算是看看这源程序修改. 没有开发过任何程序 Github使用流程: ...

  10. mysql my.cnf优化

    [mysqld] lower_case_table_names = 1sql_mode = STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION skip_name_r ...