图解HTTP(五)
本系列是对于《图解HTTP》的知识点整理。
《图解HTTP》出版于2014年,此时的HTTP2协议还未修订完成,故全书只讲解HTTP1.0、HTTP1.1以及会涉及到一点HTTP2.0依赖的协议。
本文涉及第十一章的内容。
一、Web的攻击技术
1、针对Web的攻击技术
简单的HTTP协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击的对象。应用HTTP协议的服务器和客户端,以及运行在服务器上的Web应用等资源才是攻击目标。
来自互联网的攻击大多是冲着Web战舰来的。
HTTP不具备必要的安全功能。
1.1 在客户端即可篡改请求
在HTTP请求报文中加载攻击代码,就能发起对Web应用的攻击。通过URL查询字段或表单、HTTP首部、Cookie等途径把攻击代码传入,若这是Web应用存在安全漏洞,那内部信息就会遭到窃取,或被攻击者拿到管理权限。
1.2 针对Web应用的攻击模式
- 主动攻击
- 被动攻击
以服务器为目标的主动攻击
主动攻击是指攻击者通过直接访问Web应用,把攻击代码传入的攻击模式。由于该模式是直接针对服务器上的资源进行攻击,因此攻击者需要能够访问到那些资源。
主动攻击模式里具有代表性的攻击是SQL注入攻击和OS命令注入攻击。
以服务器为目标的被动攻击
被动攻击是指利用圈套策略执行攻击代码的攻击模式。在被动攻击过程中,攻击者不直接对目标Web应用访问发起攻击。
被动攻击通常的模式如下。
被动攻击中具有代表性的攻击是跨站脚本攻击和跨站点请求伪造。
利用被动攻击,可发起对原本从互联网上无法直接访问的企业内网等网络的攻击。
2、因输出值转移不完全引发的安全漏洞
实施Web应用的安全对策可大致分为以下两部分。
- 客户端的验证
- Web应用端(服务器端)的验证
- 输入值验证
- 输出值转义
2.1 跨站脚本攻击
Cross-Site Scripting,XSS,是指通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML或JavaScript进行的一种攻击。
跨站脚本攻击有可能造成以下影响。
-
- 利用虚假输入表单骗取用户个人信息
- 利用脚本窃取用户的Cookie值,被害者在不知情的情况下,帮助攻击者发送恶意请求
- 显示伪造的文章或图片
2.2 SQL注入攻击
SQL注入是指针对Web应用使用数据库,通过运行非法的SQL而产生的攻击。
SQL注入攻击可能或造成以下等影响。
-
- 非法查看或篡改数据库内的数据
- 规避认证
- 执行和数据库服务器业务关联的程序等
2.3 OS命令注入攻击
OS命令注入是攻击是指通过Web应用,执行非法的操作系统命令达到攻击的目的。只要在能调用Shell函数的地方就有被攻击的风险。
2.4 HTTP首部注入攻击
HTTP首部注入攻击是指攻击者通过在响应首部字段内插入换行,添加任意响应首部或主体的一种攻击。属于被动攻击模式。
HTTP首部注入攻击有可能会造成以下一些影响。
-
- 设置任何Cookie信息
- 重定向至任意URL
- 显示任意的主体(HTTP响应截断攻击)
2.5 HTTP响应截断攻击
HTTP响应截断攻击是用在HTTP首部注入的一种攻击。攻击顺序相同,但是要将两个%0D%0A%0D%0A并排插入字符串后发送。利用这两个换行符就可以做出HTTP首部和主体分隔所需的空行了,这样子就能显示伪造的主体。
另外,滥用HTTP/1.1中汇集多响应返回功能,会导致缓存服务器对任意内容进行缓存操作。这种攻击称为缓存污染。
2.6 邮件首部注入攻击
2.7 目录遍历攻击
目录遍历攻击是指对本无意公开的文件目录,通过非法截断其目录路径后,达成访问目的的一种攻击。这种攻击有时也称为路径遍历攻击。
2.8 远程文件包含漏洞
远程文件包含漏洞(Remote File Inclusion)是指当部分脚本内容需要从其他文件读入时,攻击者利用指定外部服务器的URL充当依赖文件,让脚本读取之后,就可运行任意脚本的一种攻击。
这主要是PHP存在的安全漏洞,对PHP的include或require来说,是一种可通过设定,指定外部服务器的URL作为文件名的功能。但是,该功能太危险,PHP5.2.0之后默认设定此功能无效。
3、因设置或设计上的缺陷引发的安全漏洞
3.1 强制浏览
强制浏览(Forced Browsing)安全漏洞是指,从安置在Web服务器的公开目录下的文件中,浏览那些原本非资源公开的文件。
强制浏览有可能会造成以下一些影响。
-
- 泄漏顾客的个人信息等重要情报
- 泄漏原本需要具有访问权限的用户才可查阅的信息内容。
- 泄漏未外连到外界的文件
3.2 不正确的错误消息处理
不正确的错误消息处理的安全漏洞是指,Web应用的错误信息内包含对攻击者有用的信息。与Web应用有关的主要错误信息如下。
-
- Web应用抛出的错误消息
- 数据库等系统抛出的错误消息
3.3 开发重定向
开放重定向是一种对指定的任意URL作为重定向跳转的功能。
4、因会话管理疏忽引发的安全漏洞
4.1 会话劫持
下面列举几种攻击者可获得会话ID的途径。
-
- 通过非正规的生成方式推测会话ID
- 通过窃取或XSS攻击盗取会话ID
- 通过会话固定攻击(Session Fixation)强行获取会话ID
4.2 会话固定攻击
会话固定攻击会强制用户使用攻击者指定的会话ID,属于被动攻击。
攻击者估计用户差不多已触发陷阱后,再利用之前这个会话ID访问网站。(步骤④)
Session Adoption
Session Adoption是指PHP或ASP.NET能够接收处理未知会话ID的功能。
恶意使用该功能便可跳过会话固定攻击的准备阶段。
4.3 跨站点请求伪造
跨站点请求伪造(Cross-Site Request Forgeries,CSRF)攻击是指攻击者通过设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息或设定信息等某些状态更新,属于被动攻击。
跨站点请求伪造可能会造成以下等影响。
-
- 利用已通过认证的用户权限更新设定信息等
- 利用已通过认证的用户权限购买商品
- 利用已通过认证的用户权限在留言板上发表言论
5、其他安全漏洞
5.1 密码破解
密码破解有以下两种手段。
-
- 通过网络的密码试错
- 对已加密密码的破解(指攻击者入侵系统,已获得加密或散列处理的密码数据的情况)
通过网络进行密码试错
- 穷举法
- 字典攻击
对已加密密码的破解
- 通过穷举法-字典攻击进行类推
- 彩虹表
- 拿到密钥
- 加密算法的漏洞
5.2 点击劫持
点击劫持(Clickjacking)是指利用透明的按键或链接做成陷阱,覆盖在Web页面之上。然后诱使用户在不知情的情况下,点击那个链接访问内容的一种攻击手段。这种手段又称为界面伪装(UI Redressing)。
5.3 DoS攻击
DoS攻击的对象不仅限于Web网站,还包括网络设备及服务器等。
主要有以下两种DoSe攻击方式。
-
- 集中利用访问请求造成资源过载,资源用尽的同时,实际上服务也呈停止状态。
- 通过攻击安全漏洞使服务停止。
5.4 后门程序
可通过监视进程和通信的状态发现被植入的后门程序。但设定在Web应用中的后门程序,由于和正常使用时区别不大,通常很难发现。
----------------------------------------------------------------
图解HTTP系列至此结束,整理中跳过了图解HTTP的第十章。
图解HTTP出版与2014年,因此对于HTTP/2.0的提及较少,甚至在当时都没有HTTP/3.0的概念。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用