Web漏洞搜索
上QQ阅读APP看书,第一时间看更新

第5章 HTML注入和内容欺骗

超文本标记语言(HTML)注入和内容欺骗都是恶意用户向网站的Web页面注入内容的攻击。攻击者可以注入他们自己设计的HTML元素,通常情况下是模仿合法登录窗口的<form>标签,以欺骗目标对象提交敏感信息到恶意网站。因为该种攻击依赖于欺骗目标对象来实现(有时也叫作社会工程学),漏洞奖励项目把内容欺骗和HTML注入看作本书中严重程度最轻微的漏洞。

当网站允许攻击者通过某些表单的输入或URL参数提交可以在网页上直接呈现的HTML标签时,HTML注入漏洞就会发生。这有点像跨站脚本攻击,所不同的是,跨站脚本攻击考虑了恶意JavaScript的执行,这些将在第7章中讨论。

HTML注入有时也叫作虚拟破坏。这是因为开发者是使用HTML语言来定义网页结构的。因此如果攻击者能够注入HTML并且也被网站呈现出来,攻击者就可以改变网页的外观。欺骗用户通过虚假表单提交个人敏感信息的技术叫作钓鱼。

例如,如果一个页面能够呈现你能控制的内容,你就能在页面上增加一个<form>标签,以要求用户重新输入用户名和口令,如下所示:

当用户提交了该表单,用户名和口令就会通过action属性❶发送到攻击者的网站http://<attacker>.com/capture.php。

内容欺骗与HTML注入非常类似,不同的是内容欺骗仅能注入纯文本而不能注入HTML标签。有这种限制主要是因为当网站服务器端发送HTTP响应消息时,它要么转义包含的任何HTML,要么会剥离HTML标签。尽管攻击者不能用内容欺骗格式化网页内容,但是他们可以插入文本,例如插入看起来像是合法网站内容的一条消息。这些消息可以欺骗目标对象去执行一些特定操作,当然这十分依赖社会工程学。下面的例子展示了你如何去探索这些漏洞。