概念

跨站脚本(Cross-Site Scripting,XSS) 发生在目标网站中目标用户的浏览器层面上,当用户浏览器渲染整个HTML文档的过程中出现了不被预期的脚本指令并执行时,XSS就会发生。为防止与层叠样式表(Cascading Style Sheets,CSS)混淆,因此缩写为XSS进行区分。

基本原理

1.攻击者对某含有漏洞的服务器发起XSS攻击(注入JS代码)

2.诱使受害者打开受到攻击的服务器URL(邮件、留言等,此步骤可选项)

3.受害者在Web浏览器中打开URL,恶意脚本执行。

XSS跨站脚本实例

1.简单的html代码

  <html>

    <head></head>

    <body>

      <script> alert ("XSS")</script>

    <body>

  </html>

 HTML的script元素标记中间包含JavaScript,当浏览器遇到这一标记时,它不会将其内容处理成HTML或者XHTML,而是把对于其内容的控制权移交给另一个内置的浏览器代理——脚本处理引擎。又,Web浏览器本身的设计是不安全的,它只负责解释和执行JavaScript等脚本语言,而不会判断代码是否有害。

So,类似于SQL注入,当一个HTML页面能够被攻击者插入JS脚本,那么攻击便开始了。

上面的横线是js代码,深入一下xss如若是HTML代码段也照常运行:

  持续刷新:  <meta http-equiv=”refresh“ content= ”0;" >

  嵌入其他网站URL:  <iframe src=http://www.baidu.com   witdth=0 height=0> </iframe>

2.攻击实例

正常操作:将a.html的输入的参数传递给b.html并显示

PS:不想用PHP或者其他通过服务器后台的方式传参,因此简单的使用JS脚本实现参数的传递。未用表单。

a.html

  <html>

    <head>

      <title>a.html</html>

    </head>

    <body>

      <input type="text" id="input" >  </value>

      <input type="button" value="go"  onclick="go()"/>

    </body>

    <script>

      function go(){

          var input = document.getElementById("input").value;

          window.location.href ="b.html?input="+encodeURL(input);

      }

    </sscript>

  </html>

b.html

  <html>

    <head>

      <title>b.html</title>

    </head>

    <body onload="onload()">

    </body>

    <script>

      function onload(){

        var parma =document.URL.split('?')[1];

        var paramValue =parma.split("=")[1];

        document.write("<div>"+decodeURL(paramValue)+"</div>");

      }

    </script>

  </html>

case1:正常输入 点击”go“

result:显示输入内容

case2:输入"<script>alert(/XSS/);</script>" 点击”go“

result:JS脚本被执行,弹出对话框

即:假如我们通过构造特殊打的输入信息,使其一部分内容被当做JS脚本执行,XSS攻击便产生了。

XSS漏洞危害

早期,XSS危害性并不为人所认识,大多就是弹弹对话框、盗取Cookie或者网页挂马。

通常的做法是,攻击者先通过注入诸如alert("XSS")之类的JS来证明存在XSS,然后利用该XSS巴拉巴拉。。。

XSS危害特点:不如SQL注入之类直接危害大,但使用灵活。

危害总结:

1.网络钓鱼,盗取各类用户的账号

2.窃取用户Cookie,获取用户隐私,或者利用用户身份进一步执行操作

3.劫持用户(浏览器)会话,从而执行任意操作,例如进行非法转账、强制发表日志等

4.强制弹出广告页面,刷流量等

5..进行恶意操作,例如任意篡改页面信息,删除文章等,传播跨站脚本蠕虫,网页挂马等

6.进行基于大量的客户端攻击,如DDOS攻击

7.结合其它漏洞,如CSRF漏洞。

8.进一步渗透网站

  

     

XSS(笔记1)的更多相关文章

  1. XSS笔记

    XSS测试代码: <img src="javascript:alert(/xss/)"> <script src=http://evil.com/xss.js&g ...

  2. 前端Hack之XSS攻击个人学习笔记

    简单概述 **        此篇系本人两周来学习XSS的一份个人总结,实质上应该是一份笔记,方便自己日后重新回来复习,文中涉及到的文章我都会在末尾尽可能地添加上,此次总结是我在学习过程中所写,如有任 ...

  3. vue—你必须知道的 js数据类型 前端学习 CSS 居中 事件委托和this 让js调试更简单—console AMD && CMD 模式识别课程笔记(一) web攻击 web安全之XSS JSONP && CORS css 定位 react小结

    vue—你必须知道的   目录 更多总结 猛戳这里 属性与方法 语法 计算属性 特殊属性 vue 样式绑定 vue事件处理器 表单控件绑定 父子组件通信 过渡效果 vue经验总结 javascript ...

  4. Web安全学习笔记 XSS上

    Web安全学习笔记 XSS上 繁枝插云欣 --ICML8 XSS的分类和基本认识 XSS的危害 同源策略的基本认识 一.XSS的分类和基本认识 1. 简介 XSS全称为Cross Site Scrip ...

  5. Cross-site Scripting (XSS) 阅读笔记

    本文源自 https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29 通过阅读和翻译,并按照自己的理解,整理成如下文档. 概述 XSS ...

  6. XSS学习笔记(四)-漏洞利用全过程

    <script type="text/javascript" reload="1">setTimeout("window.location ...

  7. XSS学习笔记(一个)-点击劫持

    所谓XSS这个场景被触发XSS地方,在大多数情况下,攻击者被嵌入在网页中(问题)该恶意脚本(Cross site Scripting),这里的攻击始终触发浏览器端,攻击的者的目的.一般都是获取用户的C ...

  8. XSS学习笔记(五)-XSS防御

    如果只生产XSS的地方都与输入或输出相关联的.所以错过了主要矛盾.而且,我们将有一个解决问题的办法:您可以输入端砚格过滤,是可能的过滤输出时间,输出到用户的GET或POST中是否有敏感字符: 输入过滤 ...

  9. 【转载】XSS学习笔记

    XSS的分类 非持久型 非持久型XSS也称反射型XSS.具体原理就是当用户提交一段代码的时候,服务端会马上返回页面的执行结果.那么当攻击者让被攻击者提交一个伪装好的带有恶意代码的链接时,服务端也会立刻 ...

  10. XSS Challenges闯关笔记

    前言 做xss做疯了再来一个. 地址:https://xss-quiz.int21h.jp/ ,这个貌似是日本的一个安全研究员yamagata21做的. 做到第九关就跪了,而总共有二十关.一半都还没有 ...

随机推荐

  1. /etc/fstab文件分析(第二版)

    /etc/fstab文件分析 前面说新建的分区在系统重启之后就会失效,要想永久生效,需要将其写入/etc/fstab文件 一./etc/fstab文件格式:6个组成部分 物理分区名/卷标 挂载点 文件 ...

  2. Erlang cowboy 处理简单的HTTP请求

    Erlang cowboy 处理简单的HTTP请求 原文出自: Handling plain HTTP requests 处理请求的最简单的方式是写一个简单的HTTP处理器.它的模型参照Erlang/ ...

  3. 关于linux内核驱动开发中Makefile编译的问题

    obj-y:打个比方,我要编译的是hello.c这个文件,obj-y就会把hello.c或者hello.c编译生成的hello.s文件链接到内核中去. obj-m:打个比方,我要编译的是hello.c ...

  4. Xcode使用心得02:如何在项目中关闭ARC特性

    在obj-c系列内存管理的博文里大家应该对ARC有所了解,一般是不推荐关闭ARC特性的,但你也保不齐啥时候有这个需求,于是乎我们看看在最新的x6b中如何将其关闭吧. 因为Build Seting里的子 ...

  5. The 13th tip of DB Query Analyzer, powerful processing EXCEL file

    The 13thtip of DB Query Analyzer, powerful processing EXCEL file MA Genfeng (Guangdong UnitollServic ...

  6. Java工程师成神之路思维导图

    前面看Hollis的微信公众号更新了Java工程师成神之路的文档,感觉里面的内容清晰.齐全,可以用来审视自己,也能够知道自己在那些方面可以继续前行,想着有时间把它画下来,画下来之后分享出来. 主要内容 ...

  7. 新盘进行LVM的划分

    echo "- - -" > /sys/class/scsi_host/host2/scan LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由 ...

  8. 微服务架构的基础框架选择:Spring Cloud还是Dubbo?

    最近一段时间不论互联网还是传统行业,凡是涉及信息技术范畴的圈子几乎都在讨论微服务架构.近期也看到各大技术社区开始组织一些沙龙和论坛来分享Spring Cloud的相关实施经验,这对于最近正在整理Spr ...

  9. 基于Django的独立运行脚本开发

    1.在Django框架下工作时间长了,会对Django的技术设施产生依赖,比如其方便的ORM,如果写基于Django的独立运行脚本,主要在脚本前面加上以下代码: import sys,os,djang ...

  10. 爬取廖雪峰的python3教程

    从廖雪峰老师的python教程入门的,最近在看python爬虫,入手了一下 代码比较low,没有用到多线程和ip代理池 然后呢,由于robots.txt的限定,构建了一些user-agent,并放慢的 ...