A structure this pretty just had to exist. 收藏本站
登陆 / 注册 搜索

阅读: 5.5K   回复: 3

[# 网络安全] 松散的HTML世界

小执念 古黑浩劫论坛大牛 2015-12-7 13:33 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员
      HTML 里可以有脚本、样式等内容的嵌入,以及图片、多媒体等资源的引用。我们看到的网页就是一个HTML文档,比如下面这段就HTML。

[mw_shl_code=html,true]<html>
<head>
<title>HTML</title>
<metahttp-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
/*这里是样式*/
body{font-size:14px;}
</style>
<script>
a=1; // 这里是脚本
</script>
</head>
<body>
<div>
<h1>这些都是HTML</h1><br />
<img src="http://www.guhei.net/logo.png" title="这里是图片引用" />
</div>
</body>
</html>[/mw_shl_code]

      为什么说HTML的世界是松散的?我们知道,HTML是由众多标签组成的,标签内还有对应的各种属性。这些标签可以不区分大小写,有的可以不需要闭合。属性的值可以用单引号、双引号、反单引号包围住,甚至不需要引号。多余的空格与Tab毫不影响HTML的解析。HTML 里可以内嵌CSS、JavaScript 等内容,而不强调分离,等等。


      松散有松散的好处,但这样却培养出了一种惰性,很多前端安全问题就是因为松散导致的。

      一、DOM树

      DOM树对于Web前端安全来说非常重要,我们的很多数据都存在于DOM 树中,通过DOM树的操作可以非常容易地获取到我们的隐私数据。其实HTML文档就是一个DOM 树。

      如上面那段HTML,如果用树形结构描述,语句如下。

<html>
- <head>
- <title>
- HTML
- <meta>
- @http-equiv
- Content-Type
- @content
- text/html
- @charset
- utf-8
- <style>
- /*这里是样式*/\r\nbody{font-size:14px;}
- <script>
- a=1; // 这里是脚本
- <body>
- <div>
- <h1>
- 这些都是 HTML
- <br />
- <img>
- @src
- www.guhei.net/logo.png
- @title

     这个树很简单,<html>是树根,其他都是树的每个节点。这里约定标签节点以<xxx>表示,属性节点以@xxx 表示,而文本节点以xxx 表示。

      我们的隐私数据可能存储在以下位置:
·HTML 内容中;
·浏览器本地存储中,如Cookies 等;
·URL 地址中。

    这些通过DOM 树的查找都可以获取到,仅仅是JavaScript 对DOM 的操作。

      二、HTML内嵌脚本执行

      JavaScript脚本除了出现在JS格式文件里,被嵌入而执行外,还可以出现在HTML的<script></script>标签内、HTML 的标签on 事件中,以及一些标签的href、src 等属性的伪协议(javascript:等)中。

      如下几个例子:

<script>alert(1)</scipt>
<img src=# />
<input type="text" value="x" />
<iframe src="javascript:alert(1)"></iframe>
<a href="javascript:alert(1)">x</a>

    这样导致防御XSS 变得有些棘手,出现在DOM 树的不同位置,面对的防御方案都不太一样。这也为攻击者提供了很大便利,能够执行JavaScript 的位置越多,意味着XSS 发生的面也越广,XSS 漏洞出现的可能性也越大。

      三、跨站之魂——JavaScript

      在Web 前端安全中,JavaScript 控制了整个前端的逻辑,通过JavaScript 可以完成许多操作。举个例子,用户在网站上都有哪些操作?首先提交内容,然后可以编辑与删除,那么这些JavaScript 几乎都可以完成,为什么是“几乎”?因为碰到提交表单需要验证码的情况,JavaScript 就不行了,虽然有HTML5 的canvas 来辅助,不过效果并不会好。

      对跨站师来说,大多数情况下,有了XSS漏洞,就意味着可以注入任意的JavaScript,有了JavaScript,就意味着被攻击者的任何操作都可以模拟,任何隐私信息都可以获取到。可以说,JavaScript就是跨站之魂。

上一篇:  URL与URL的大小写敏感

下一篇:  W3C世界法则


暮色里的白雪檐 「出类拔萃」 2017-9-14 13:40 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

纯粹路过,没任何兴趣,仅仅是看在古黑币份上回复一下
降临1994 「出类拔萃」 2018-4-30 22:09 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

勿以坑小而不灌,勿以坑大而灌之。
著墨染雨君画夕 「出类拔萃」 2018-5-1 08:58 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~


好帖
很好帖
确实好帖
少见的好帖
真 *** 好帖
难得一见的好帖
千年等一回的好帖
好得不能再好的好帖
惊天地且泣鬼神的好帖
让人阅毕击掌三叹的好帖
让人佩服得五体投地的好帖
让人奔走相告曰须阅读的好帖
让斑竹看后决定加精固顶的好帖
让人看后在各论坛纷纷转贴的好帖
让人看后连成人网站都没兴趣的好帖
让人看完后就要往上顶往死里顶的好帖
让人看后不断在各种场合重复引用的好帖
让人一见面就问你看过某某好帖没有的好帖
让人半夜上厕所都要打开电脑再看一遍的好帖
让个读过后都下载在硬盘里详细研究欣赏的好帖
让人走路吃饭睡觉干什么事连做梦都梦到它的好帖
让人翻译成36种不同外语流传国内外世界各地的好帖
让人纷纷唱道过年过节不送礼要送就送某某帖子的好帖
让国家领导人命令将该帖刻在纯金版上当国礼送人的好帖
让网络上纷纷冒出该帖的真人版卡通版搞笑版成人版的好帖
让人在公共厕所里不再乱涂乱化而是纷纷对它引经据典的好帖
让某位想成名的少女向媒体说她与该帖作者发生过性关系的好帖
让人根据它写成小说又被不同导演拍成48个不同版本的电影的好帖
#372:
您需要登录后才可以回帖 登录 | 免费注册  

本版积分规则

关于本站|大事记|小黑屋|古黑论 网站统计

GMT+8, 2020-10-31 14:59 , Processed in 0.038422 second(s), 22 queries , Redis On.

© 2015-2020 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表