XSS构造剖析
参考:邱永华《XSS跨站脚本攻击剖析与防御》
一 绕过XSS-filter
1.利用<>标记注射Html/JavaScript
比如:<script>alert('XSS');</script>
防御:过滤和转义“<>”或<script>等字符
2.利用HTML标签属性执行XSS
比如:<img src=“javascript:alert('XSS');”>
防御:过滤JavaScript、VBScript等关键字
3.利用空格回车Tab绕过XSS Filter的黑名单限制
比如:<img src=“javas cript:alert(/XSS/)” width=100> (注意javas和cript之间的间隔是由Tab键添加的)
4.对标签属性值转码
比如:将<img src=“javascript:alert('XSS');”>替换成<img src=“javascript:alert(/XSS/);”>
其中t的ASCII码为116,用t表示,:则表示为:
防御:过滤&#\等字符
5.产生自己的事件
<input type="button" value="clickme" onclick="alert('clickme')">
<img src="#" onerror=alert(/xss/)>
6.利用CSS跨站剖析
示例1:
<div style="background-image:url(javascript:alert('XSS'))">
<style>
body {background-image:url("javascript:alert('XSS')");}
</style>
防御:过滤<style>标签,同时对style属性的值进行过滤
示例2:
<img src="#" style="XSS:expression(alert('XSS'));">
此外,CSS样式表还可以直接从其他文件进行引用,比如使用<link>标签引用或者使用@import将其导入。
防御:对样式表中的expression、javascript、import等敏感字符机芯过滤。
7.扰乱过滤规则
比如转换大小写、大小写混淆、双引号改为单引号或者不使用引号、插入/**/或者\或者\0等混淆字符(因为这些字符会被浏览器忽略)欺骗过滤器、将CSS中的关键字进行转码等。
二 利用字符编码
比如unicode、escapes、十六进制、八进制等编码形式
或者使用其他编码/加密技术——JScript Encode和VBScript Encode。
三 拆分跨站法
核心:将跨站代码分成几个片段,然后再使用某种方式将其拼接在一起执行
XSS构造剖析的更多相关文章
- 《xss跨站脚本剖析与防御》实验笔记
1.书籍<xss跨站脚本剖析与防御>上介绍的xss测试代码 <img src="javascrpt:alert('xss');">, <table b ...
- XSS 跨站脚本攻击之构造剖析(一)
1.XSS-Filter:跨站脚本过滤器,用于分析用户提交的输入,并消除潜在的跨站脚本攻击 (1)XSS Filter实际上是一段精心编写的过滤函数作用是过滤XSS跨站脚本代码: (2)绕过XSS F ...
- XSS 跨站脚本攻击之构造剖析(二)
1.利用字符编码 (1)字符编码在跨站脚本中经常运用到,透过这种技巧,不仅能让XSS代码绕过服务端的过滤,还能更好的隐藏ShellCode (2)使用一个XSS编码工具,以便对字符串进行十进制和十六进 ...
- xss概念剖析
XSS又叫CSS (Cross-Site Scripting) ,跨站脚本攻击.恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意 ...
- XSS构造技巧
利用字符编码: 百度曾经出过一个XSS漏洞,在一个<script>标签中输出一个变量,其中转义了双引号: var redirectUrl="\";alert(/XSS/ ...
- xss构造--如何使用xss语句
XSS的构造 1.利用[<>]构造html/js 如[<script>alert(/xss/)</script>] 2.伪协议 使用javascript:伪协议来构 ...
- Vue中的Xss构造
首发tools:https://www.t00ls.net/thread-59512-1-1.html 存储型XSS 最近做测试的时候碰到了一个前端页面使用了Vue框架的项目 在测试XSS漏洞的过程中 ...
- XSS的构造技巧
XSS的构造技巧 By:Mirror王宇阳 E-mail:2821319009@qq.com 本文为长期持续维护,一旦遇到新的技术技巧将及时更新本文内容 非常的欢迎技术大佬纠正并补充,也欢迎技术同僚讨 ...
- XSS初探
1 什么是XSS跨站脚本 跨站脚本是一种经常出现在Web应用程序中的计算机安全漏洞,是由于Web应用程序对用户输入过滤不足而产生的.攻击者利用网站漏洞把恶意的脚本代码注入到网页之中,当其他用户浏览这些 ...
随机推荐
- Laravel 队列使用
触发 任务的触发,主要的实现是在IlluminateFoundationBusDispatchesJobs这个trait中实现的,其只包含两个方法 protected function dispatc ...
- SpringMVC 使用注解完成登录拦截
目录 为了实现用户登录拦截你是否写过如下代码呢? 1. 基于Filter 2. 基于Struts 3. 基于SpringMVC 如何使用自定义注解完成自定义拦截呢? 登录注解 SpringMVC 拦截 ...
- C++走向远洋——43(人数不定的工资类,动态分配内存与释放)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- USB小白学习之路(1) Cypress固件架构解析
Cypress固件架构彻底解析及USB枚举 1. RAM的区别 56pin或者100pin的cy7c68013A,只有内部RAM,不支持外部RAM 128pin的cy7c68013A在pin脚EA=0 ...
- hive、Hbase、mysql的区别
1.Hive和HBase的区别 1)hive是sql语言,通过数据库的方式来操作hdfs文件系统,为了简化编程,底层计算方式为mapreduce. 2)hive是面向行存储的数据库. 3)Hive本身 ...
- Vue2.0组件的继承与扩展
如果有需要源代码,请猛戳源代码 希望文章给大家些许帮助和启发,麻烦大家在GitHub上面点个赞!!!十分感谢 前言 本文将介绍vue2.0中的组件的继承与扩展,主要分享slot.mixins/exte ...
- 搭建Flutter开发环境需要注意的几个小Tips
目录 下载SDK 安装 Android Stdio + SDK + tool SDK + 创建模拟器 + 插件(flutter和dart) Xcode + cocoapods VSCode + Flu ...
- 超详细的HDFS读写流程详解(最容易理解的方式)
HDFS采用的是master/slaves这种主从的结构模型管理数据,这种结构模型主要由四个部分组成,分别是Client(客户端).Namenode(名称节点).Datanode(数据节点)和Seco ...
- Ubuntu中VMware tools的安装步骤
按照下面的步骤,轻松解决!! 1.点击导航栏中的虚拟机,下面的安装VMware tools 2.点击桌面上的光盘,进入后,将tar.gz文件复制到桌面,然后右击提取到此处: 3.在桌面打开终端,cd到 ...
- python学习(二)之turtle库绘图
今天是三月七号,也就是女生节,或者女神节.不知道你是不是有自己喜欢的女孩子,在这里你可以用turtle库绘制一朵玫瑰花,送给你喜欢的姑娘.(拉到最后有惊喜哦)但在画这朵玫瑰花之前,先来一个基础的图形, ...