对上文 【web安全】第二弹:XSS攻防中的复合编码问题 的一些补充,思路来源于:http://escape.alf.nu/3/

html解码的问题:

通过appendChild添加的节点,不会被HTML解码,示例代码如下:

<body>test</body>
<script type="text/javascript">
function escape(s) {
var url = 'javascript:console.log(' + JSON.stringify(s) + ')';
console.log(url); var a = document.createElement('a');
a.href = url;
a.setAttribute("test", "&gt;2333")
document.body.appendChild(a);
}
s = "&gt;);alert(1)//";
escape(s);
</script>

只有通过innerHTML插入页面的代码才会被HTML解析。

<script type="text/javascript">
s = '<a href="&gt;">test</a>'
document.body.innerHTML = s;
</script>

解析后为:

URL解码的问题:

URL解码发生在点击链接的时候。示例如下:

在触发点击事件的时候,先进行URL解码,发现javascript伪协议之后,对内容进行JS解析执行。

XSS 复合编码 续的更多相关文章

  1. 【web安全】第二弹:XSS攻防中的复合编码问题

    最近一直在研究XSS的攻防,特别是dom xss,问题慢慢的迁移到浏览器编码解码顺序上去. 今儿被人放鸽子,无奈在KFC看了两个小时的资料,突然有种豁然开朗的感觉. 参考资料先贴出来: 1. http ...

  2. xss的编码原理

    把以前的笔记翻出来整理一下 最前方 xss如何选用编码原理,为什么 找到的挺清楚的文章了:https://www.cnblogs.com/p0laris/p/11898322.html浏览器解析有两种 ...

  3. python自动化开发-[第二天]-基础数据类型与编码(续)

    今日简介: - 编码 - 进制转换 - 初识对象 - 基本的数据类型 - 整数 - 布尔值 - 字符串 - 列表 - 元祖 - 字典 - 集合 - range/enumcate 一.编码 encode ...

  4. xss:利用编码绕过(新手向)

    当浏览器接受到一份HTML代码后,会对标签之间(<p>xxx</p>等,<script>除外).标签的属性中(<a href='xxxx'>)进行实体字 ...

  5. 字符编码(续)---Unicode与ANSI字符串转换以及分辨字符编码形式

    Unicode与ANSI字符串转换 我们使用windows函数MultiByteToWideChar将多字节字符串转换为宽字符字符串,如下: int MultiByteToWideChar( UINT ...

  6. 防止xss漏洞-编码转义

    用JS进行转义还是用PHP进行转义,最后存入数据库的是什么形式 比如:用户输入: <script>alrt(0);</script>那数据库里面存储的是源数据还是转以后的数据: ...

  7. XSS编码初析

    首先我们应当了解,当我们发送一个请求链接时,服务器与客户端都发生了什么 这里仅涉及到js的编码问题,因此就编码来说,首先我们确定我们发出的请求是采用GET的方式还是采用POST的方式 若采用GET的方 ...

  8. Web安全--XSS模版

    [XSS基本探测pyload]   <script>alert("xss")</script> <script>alert(/xss/)< ...

  9. Xss Bypass备忘录

    Xss Bypass备忘录 技术要发展,免不了风波. 也许这些攻攻防防会更好的促进技术的发展也说不定 就让这一次次的爆破换来将来更精练的技术的无比的宁静吧 我们静观其变吧! 缅怀当初那份最纯真Hack ...

随机推荐

  1. [改善Java代码]适时选择getDeclaredxxx和getxxx

    Java的Class类提供了很多的getDeclaredxxx方法和getxxx方法,例如getDeclaredmethod和getMethod成对出现,getDeclaredConstructors ...

  2. HTTP - 条件请求

    当 HTTP 请求包含 If-XXX 这种样式的首部时,服务器会对附带的条件进行判断,只有判断指定条件为真,才会执行请求.这样的请求首部有五个,分别是 If-Modified-Since.If-Unm ...

  3. Javascript之获取屏幕宽高

    <head> <title> new document </title> <meta name="generator" content=& ...

  4. Servlet之过滤器

    Servlet的介绍: Servlet API 中定义了三个接口类来开供开发人员编写 Filter 程序:Filter, FilterChain, FilterConfig Filter 程序是一个实 ...

  5. sql中的触发器、视图、事务

    ·触发器(trigger) [触发器本质上还是一个存储过程,只不过不是用exe来调用执行,而是通过增删改数据库的操作] [触发器只对增.删.改有效] 触发器的格式 (instead of与for的区别 ...

  6. Oracle中NVARCHAR2字符集不匹配问题

    Oracle中在做字符匹配时 遇到 NVARCHAR2 类型时报错,提示 字符集不匹配. 对使用 NVARCHAR2 的地方,需要对字段进行字符转换,加上 to_char(nvarchar2 字段) ...

  7. Oracle工程师技能树

    整理了份Oracle工程师的技能树,方便大家在学习的过程中有个大体方向. 欢迎提意见,可以随时更新. 源文件链接地址点此 图片如下: 多媒体插件如下:

  8. lucene4入门(3)琐记

    欢迎转载http://www.cnblogs.com/shizhongtao/p/3440486.html <--这个是lucene4.6的api下载地址,格式是chm的.需要的人可以下载htt ...

  9. template_1

    0: 模板是一些为多种类型而编写的函数和类,而且这些类型都没有指定.当使用模板的时候,只需要把所希望的类型作为一个(显示或隐示的)实参传递给模板.模板是语言本身所具有的特效,她完全支持类型检查和作用域 ...

  10. Win7设置共享文件夹

    在系统中,实现共享的前提是,双方要在同一个局域网内,同一个工作组或者域内. 添加共享用户 点击确定即可,最好把共享的权限设置为只读类型,方便管理. 可以使用计算机的用户名或者IP地址来访问 如果还是不 ...