当前位置: 首页 > news >正文

$var=htmlencode(“‘);alert(‘2“); 的个人理解

问题

在《白帽子讲Web安全》第三章的 3.3.3.2只需一种编码吗 中有下面一段话:

看看下面这个例子:

<body>
<a href=# onclick="alert('$var');">test</a>
</body>

如果用户输入

$var = htmlencode("');alert('2");

在对变量$var进行htmlencode后,渲染的结果是

<body>
<a href=# onclick="alert('&#x27;&#x29;&#x3b;alert&#x28;&#x27;2');" >test</a>
</body>

对浏览器来说,htmlparser会优先于JavaScript Parser执行,所以解析过程是,被HtmlEncode的字符先被解码,然后执行JavaScript事件。

<body>
<a href=# onclick="alert('');alert('2');">test</a>
</body>

这里的 $var = htmlencode("');alert('2"); 刚开始没有看懂。之后放在vscode中就看懂了。

原因

如图:

$var=htmlencode("');alert('2"); 的个人理解

这个函数是对双引号中的特殊符号进行了编码。也就是对');'进行编码。

因此也就有了渲染结果中的&#x27;&#x29;&#x3b; 和 &#x27;

用户真实的输入其实是');alert('2,在对其进行htmlencode后,渲染成了&#x27;&#x29;&#x3b;alert&#x28;&#x27;2,接着在浏览器中显示的时候,由于htmlparser会优先于JavaScript Parser执行,所以先被解码回初始输入,');alert('2,最终执行javascript事件。

相关文章:

  • 用Calibre 转mobi 到 DOC (WORD) 的方法
  • Vfed大橙子模板 苹果cms自动采集 的方法
  • Ubuntu18.04 怎么看ip地址 查看ip的方式
  • 设置 indicator-sysmonitor 开机启动方法
  • css权威指南
  • Ubuntu18.04 安装360安全浏览器 的记录
  • 安装和配置 苹果CMS v10 的记录 搭建教程
  • Training: Math Pyramid 详细的 write up
  • 方锥体积的计算公式以及定义 初中高中数学
  • Register Globals (Exploit, PHP, Training)
  • 白帽子讲web安全 编码问题sql注入的 笔记
  • 给新浪博客修改博客名字 超级简单图文教程
  • 理解 白帽子讲web安全 ‘alert(\““ + x + “\“)‘
  • 一行JavaScript代码 将 HTML实体 转成 字符
  • maven Filtering true 作用
  • 2017年终总结、随想
  • co.js - 让异步代码同步化
  • css布局,左右固定中间自适应实现
  • FastReport在线报表设计器工作原理
  • java 多线程基础, 我觉得还是有必要看看的
  • jQuery(一)
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • 大型网站性能监测、分析与优化常见问题QA
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 前嗅ForeSpider教程:创建模板
  • 突破自己的技术思维
  • 我看到的前端
  • 移动端 h5开发相关内容总结(三)
  • 与 ConTeXt MkIV 官方文档的接驳
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (6)STL算法之转换
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二)JAVA使用POI操作excel
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (理论篇)httpmoudle和httphandler一览
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • .net core 连接数据库,通过数据库生成Modell
  • .NET 读取 JSON格式的数据
  • .NET 设计一套高性能的弱事件机制
  • .net 提取注释生成API文档 帮助文档
  • .net网站发布-允许更新此预编译站点
  • @EnableConfigurationProperties注解使用
  • @ModelAttribute使用详解
  • [ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现
  • [100天算法】-不同路径 III(day 73)
  • [2016.7 test.5] T1
  • [Android Pro] AndroidX重构和映射