欢迎光临
我们一直在努力

基础的HTML和http的知识点总结

仅仅代表本人在学习中整理的知识点!

一、初始HTML

1.Hyper Text Markup Language(超文本标记语言)

超文本包括:文字、图片、音频、视频、动画等

2.HTML的基础结构:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>标题</title>

</head>

<body>

</body>

</html>

(1)<!DOCTYPE html> 这是声明文档的类型。声明位于文档中的最前面的位置,处于 <html> 标签之前。它不是一个html标签,它是用来告知 Web 浏览器页面使用了哪种 HTML版本。

(2)<html lang="en">  它是根元素,lang是指定语言。

(3)<head> 头部开始。

(4)<meta charset="UTF-8"> 字符编码,告诉浏览器这个页面用什么字符编码。而且它必须要写在<title>的前面。

(5)<title>标题</title> 字面意思,就是浏览器标签栏中显示的文字。

(6)</head> 头部结束

(7)<body> 主体的开始,所有你想给别人看见的内容就需要放到这里面。

(8)</body> 主体的结束。

(9)</html> 根元素的结束。

3.特殊符号

符号实体名称数字实体说明
空格 不间断空格,多个连续显示
> > > 大于号,用于显示HTML标签尖括号
< < < 小于号
& & & &符号本身
" " " 双引号
' ' ' 单引号(部分浏览器不支持',建议用')
© © © 版权符号
® ® ® 注册商标
¥ ¥ ¥ 人民币/日元符号

这里存在于一个XSS过滤过滤的操作。那什么是XSS过滤器呢?

XSS过滤器是浏览器内置或WAF(Web应用防火墙)用来检测和阻止跨站脚本攻击(XSS)的安全机制。它通过分析HTTP请求和响应中的可疑内容,拦截或修改恶意代码。

为什么会需要过滤器呢?

因为Web应用在处理用户输入时,未能严格区分数据与代码的边界。当用户提供的字符串被直接拼接到HTML、JavaScript或CSS上下文中时,该字符串中的特殊字符(如<、>、"、'、&)被浏览器解析器视为语法结构而非纯文本内容,从而改变了文档对象模型的预期结构。

如果没有过滤器会导致什么后果?

没有过滤器,浏览器会无条件执行服务器返回的任何HTML代码,包括攻击者注入的恶意脚本。这意味着XSS攻击的成功率将大幅提高,更多用户会在不知情的情况下遭受攻击。

4.图像标签<img>

4.1 图像标签的结构

<img src="图片路径" alt="图片加载失败时的替代文字" title="鼠标悬停提示">

属性说明渗透点
src 图片URL(绝对/相对路径) 可指向外部恶意图片(图片马)
alt 图片无法显示时的文字 屏幕阅读器朗读,SEO友好
title 鼠标悬停时的提示 无安全影响
width/height 宽高(px或%) 设置过大可能导致界面错乱

4.2渗透

<img>标签能搞渗透,是因为它自带的onerror和onload就像两个“后门开关”——图片加载失败或成功时都能触发JS代码执行;而data:image/svg+xml则是在图片链接里直接“藏”了一个完整网页,里面还能写<script>。这两种手法的本质都是:后端没把用户输入的内容当作纯文本处理,直接吐回给浏览器,浏览器就老老实实把它当代码执行了。

5.链接标签

5.1结构(从一个页面跳到另一个页面)

<a href="目标URL" target="_self">文本</a>  
<a href="目标URL" target="_blank">文本</a>  
 

target="_self"   在当前窗口/当前标签页中打开链接 

target="_blank"   在新的窗口/新的标签页中打开链接

组成部分含义说明
<a> 标签名 全称 锚点,用于定义超链接
href 属性 全称超文本引用,指定链接跳转的目标地址
="目标URL" 属性值 可以是绝对URL、相对路径、锚点、协议、或javascript代码
target 属性 指定链接内容在何处打开/显示
="打开方式" 属性值 决定浏览器的打开行为
>链接内容</a> 标签体 用户可见和可点击的内容,可以是文本、图片、或其他HTML元素

5.2渗透

<a>标签能搞渗透,是因为它的href可以塞进javascript:伪协议实现点击即执行;还能用表面文字伪装真实链接进行钓鱼;再加上target="_blank"会暴露window.opener,让恶意页面反过来控制原页面。三种手法的本质都是:后端把用户输入的链接原样输出到页面上,浏览器就把它当成合法功能执行了。

6.表单

6.1结构

<form method="提交方式" action="目标地址">
    <!– 表单元素(输入框、按钮等) –>
</form>

属性含义说明
method 规定如何发送表单数据 常用值:get、post。get将数据附加在URL后面(明文可见),post将数据放在请求体中(相对安全)
action 表示向何处发送表单数据 指定处理表单数据的服务器端脚本(如 1.php、/login)

6.2总结

由于表单里面包含需要模块,这里我们直接列出一个表格进行总结:

元素标签/写法用途提交时的行为
文本框 <input type="text"> 输入文本 提交 name=输入值
密码框 <input type="password"> 输入密码(掩码) 提交 name=输入值(明文传输)
单选按钮 <input type="radio"> 从多个选项选一个 选中的提交 name=value
复选框 <input type="checkbox"> 从多个选项选多个 选中的提交 name=value(可多个)
下拉列表 <select><option></select> 下拉选择 选中的提交 name=value
重置按钮 <input type="reset"> 清空表单 不提交数据
提交按钮 <input type="submit"> 触发表单提交 触发表单提交
普通按钮 <input type="button"> 自定义功能 不提交数据

二、HTTP

1.什么是HTTP协议

HTTP是浏览器和网站服务器之间沟通的"共同语言",规定了它们之间如何"打招呼"、"提要求"、"给回应"。

2.动、静态网页对比

对比项静态网页(HTML)动态网页(PHP/JSP/ASP)
文件后缀 .html .htm .php .jsp .aspx
内容变化 手动修改HTML文件 从数据库读取,实时变化
用户交互 有限(纯前端JS) 可处理表单、登录、查询
系统资源调用 不能  可调用系统命令(有RCE风险)
源代码可见性  用户可查看全部源代码  用户只能看到生成的HTML
性能 快(无需解析) 较慢(需执行脚本)

3.中间件

3.1什么是中间件

中间件是Web应用运行的基础环境,位于操作系统和Web应用之间,是Web应用的流量入口和调度中心。常用的中间件有Apache、Nginx、Tomcat等。

3.2中间件在渗透测试中有什么作用?

中间件是对外暴露的第一层服务,其响应头、错误页面、默认文件等会直接泄露大量信息。中间件版本号泄露,我们就可以去找对应版本的历史漏洞,然后进行后续的渗透操作。

4.请求报文

4.1请求字段

字段作用
Host 指定目标服务器地址和端口
User-Agent 客户端浏览器信息
Referer 当前请求的来源
Cookie 身份认证信息
Content-Type 实体数据类型
Content-Length 正文长度
Last-Modified 资源最后修改时间

4.2响应字段

字段作用
Set-Cookie 服务端设置Cookie
Location 重定向目标
Refresh 定时刷新

4.3响应码

状态码含义
200 成功
301/302 重定向
401 未认证
403 已认证但无权限
404 资源不存在
500 服务器错误

2 开头的状态码相当于请求报文正确获取到了服务器的响应。登录失败。

3 开头代表服务器当前网页无法提供我们需要的资源,指示我们去访问新的页面获取资源

301.302。301 当前资源永久废弃。302 转向

4 开头,代表客户端请求出现了错误。404,请求资源不存在。401 未登录,缺少 cookie 或者

token 等身份令牌。403 登录了,没有权限。

5 开头,代表服务器错误,或者路由出现了异常

赞(0)
未经允许不得转载:171主机测评 » 基础的HTML和http的知识点总结
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址