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应用程序对用户输入过滤不足而产生的.攻击者利用网站漏洞把恶意的脚本代码注入到网页之中,当其他用户浏览这些 ...
随机推荐
- 状压DP小拼盘
有的DP题,某一部分的状态只有两种,选或不选. 开数组记录,代价太大,转移不方便. 状态压缩意为,用 “0/1“ 表示 “选/不选“ . 把状态表示为二进制整数. There are 10 kinds ...
- PHP常用接口数据过滤的方法
<?php /** * global.func.php 公共函数库 */ /** * 返回经addslashes处理过的字符串或数组 * @param $string 需要处理的字符串或数组 * ...
- TNS-04612: "orcl--117-118" 的 RHS 为空
安装数据库时,TNS-04612: "orcl--117-118" 的 RHS 为空 解决办法: 把 D:\app\xxx\product\11.2.0\dbhome_1\NETW ...
- 由生到死10个月!做App中的“二”有多难
十月,原本是怀胎过程的喜悦时光,但这段个时光,如今却是绝大多数App从生到死的所有时间.在App市场表面形式一片大好,彻底主宰我们生活.工作.娱乐的当下,绝大多数用户只是在App海洋中只取一瓢饮,其他 ...
- python调用adb命令进行手机操作
Python中执行cmd命令可以用到os和subprocess两个模块. 区别在于os是阻塞式的,subprocess是非阻塞式的,所以一般我们使用subprocess是比较适合的. 接下来我先举一个 ...
- C#利用反射调用PB编译的COM组件
问题: 1.根据COM组件的ProgID,得到COM组件公开的类型 2.创建COM组件提供的类型的对象 3.调用执行方法 正确姿势 C#利用反射调用(后期绑定)PB编译的COM组件 C#调用COM组件 ...
- Html学习笔记(二) 简单标签
标签的重点 标签的用途 标签在浏览器中的默认样式 <body>标签: 在网页上显示的内容 <p>标签: 添加段落 <hx>标签: 添加标题 标签一共有6个,h1.h ...
- marquee横向无缝滚动无js
<!DOCTYPE html><html><head><meta charset="utf-8"> <title>< ...
- HelloWorld系列(一)- 手把手教你做JDK环境变量配置
分下载,配置,验证三个步骤讲解如何进行JDK环境变量配置. 步骤1:首先看配置成功后的效果步骤2:下载,并解压到E:\JDK步骤3:环境变量配置步骤4:Win10 下环境变量Path的配置步骤5:验证 ...
- 使用CSS实现折叠面板总结
任务目的 深入理解html中radio的特性 深入理解CSS选择器以及伪元素的使用 任务描述 使用input的radio单选框特性结合CSS中的伪元素实现bootstrap中折叠面板(点击查看样例), ...