XSS 复合编码 续
对上文 【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", ">2333")
document.body.appendChild(a);
}
s = ">);alert(1)//";
escape(s);
</script>
只有通过innerHTML插入页面的代码才会被HTML解析。
<script type="text/javascript">
s = '<a href=">">test</a>'
document.body.innerHTML = s;
</script>
解析后为:
URL解码的问题:
URL解码发生在点击链接的时候。示例如下:
在触发点击事件的时候,先进行URL解码,发现javascript伪协议之后,对内容进行JS解析执行。
XSS 复合编码 续的更多相关文章
- 【web安全】第二弹:XSS攻防中的复合编码问题
最近一直在研究XSS的攻防,特别是dom xss,问题慢慢的迁移到浏览器编码解码顺序上去. 今儿被人放鸽子,无奈在KFC看了两个小时的资料,突然有种豁然开朗的感觉. 参考资料先贴出来: 1. http ...
- xss的编码原理
把以前的笔记翻出来整理一下 最前方 xss如何选用编码原理,为什么 找到的挺清楚的文章了:https://www.cnblogs.com/p0laris/p/11898322.html浏览器解析有两种 ...
- python自动化开发-[第二天]-基础数据类型与编码(续)
今日简介: - 编码 - 进制转换 - 初识对象 - 基本的数据类型 - 整数 - 布尔值 - 字符串 - 列表 - 元祖 - 字典 - 集合 - range/enumcate 一.编码 encode ...
- xss:利用编码绕过(新手向)
当浏览器接受到一份HTML代码后,会对标签之间(<p>xxx</p>等,<script>除外).标签的属性中(<a href='xxxx'>)进行实体字 ...
- 字符编码(续)---Unicode与ANSI字符串转换以及分辨字符编码形式
Unicode与ANSI字符串转换 我们使用windows函数MultiByteToWideChar将多字节字符串转换为宽字符字符串,如下: int MultiByteToWideChar( UINT ...
- 防止xss漏洞-编码转义
用JS进行转义还是用PHP进行转义,最后存入数据库的是什么形式 比如:用户输入: <script>alrt(0);</script>那数据库里面存储的是源数据还是转以后的数据: ...
- XSS编码初析
首先我们应当了解,当我们发送一个请求链接时,服务器与客户端都发生了什么 这里仅涉及到js的编码问题,因此就编码来说,首先我们确定我们发出的请求是采用GET的方式还是采用POST的方式 若采用GET的方 ...
- Web安全--XSS模版
[XSS基本探测pyload] <script>alert("xss")</script> <script>alert(/xss/)< ...
- Xss Bypass备忘录
Xss Bypass备忘录 技术要发展,免不了风波. 也许这些攻攻防防会更好的促进技术的发展也说不定 就让这一次次的爆破换来将来更精练的技术的无比的宁静吧 我们静观其变吧! 缅怀当初那份最纯真Hack ...
随机推荐
- ruby 疑难点之—— attr_accessor attr_reader attr_writer
普通的实例变量 普通的实例变量,我们没法在 class 外面直接访问 #普通的实例变量,只能在 class 内部访问 class C1 def initialize(name) @name = nam ...
- oracle中的sql%rowcount
sql%rowcount用于记录修改的条数,就如你在sqlplus下执行delete from之后提示已删除xx行一样,这个参数必须要在一个修改语句和commit之间放置,否则你就得不到正确的修改行数 ...
- 24小时学通Linux内核之有关Linux文件系统实现的问题
有时间睡懒觉了,却还是五点多醒了,不过一直躺倒九点多才算起来,昨晚一直在弄飞凌的嵌入式开发板,有些问题没解决,自己电脑系统的问题,虽然Win10发布了,,但我还是好喜欢XP呀,好想回家用用家里的XP来 ...
- Sublime Text—设置浏览器快捷键
在不同浏览器查看代码效果可谓是家常便饭,所以用不同快捷键打开相应浏览器可以大大提高工作效率. 介绍个简单的方法只需二步: 一.安装插件SideBarEnhancements 打开Package Con ...
- Java Concurrency - Phaser, Controlling phase change in concurrent phased tasks
The Phaser class provides a method that is executed each time the phaser changes the phase. It's the ...
- Lombok(1.14.8) - @Cleanup
@Cleanup @Cleanup,关闭流.如果最后清理资源的方法不是 close(),可以指定,例如 @Cleanup("clean"). package com.huey.lo ...
- Android简单拨号
package com.example.phonecall; import android.net.Uri; import android.os.Bundle; import android.app. ...
- JavaBean之简单应用JSP页面
JavaBean的属性可以是任意类型,并且一个JavaBean可以有多个属性.每个属性通常都需要具有相应的setter. getter方法,setter方法称为属性修改器,getter方法称为 属性访 ...
- 随笔001:Group by 语法剪辑
基本语法: GROUP BY [ALL] group_by_expression[,……n][WITH (CUBE|ROLLUP)] 参数说明: ALL:用于指定包含所有组和结果集,甚至包含那些其中任 ...
- DOS批处理命令-几个固定名称的变量
批处理中有一些变量的变量名称是固定的,具有特定的意义,接下来,我们来看看这些有特定意义的变量到底有什么意义. 1.%CD% 当前路径的路径名[盘符 + 路径] - 現在のディレクトリ文字列に ...