1、L003001019HTTP攻击与防护HTTP拆分响应攻击 课程编写类别内容实验课题名称HTTP攻击与防护-HTTP拆分响应攻击实验目的与要求1了解HTTP的概念2了解HTTP响应拆分攻击的方式3掌握防范攻击的方法实验环境VPC1(虚拟PC)Windows server 2003VPC1 连接要求PC 网络接口,本地连接与实验网络直连软件描述1、学生机要求安装java环境2、vpc安装windwos 系统实验环境描述1、 学生机与实验室网络直连;2、 VPC1与实验室网络直连;3、 学生机与VPC1物理链路连通;预备知识HTTP是HyperText Transfer Protocol的简写,用
2、来定义因特网上的数据传输协议,最初的用途是要接收与解释HTML网页。HTTP是由World Wide WebConsortium与the Intemet Engineering Task Force所制定,现今使用的版本是HTTP/1.1,规范是RFC2616。 HTTP是客户端与服务器之间的请求/响应的协议。HTTP的客户端经由特定的Port(预设是Port 80)来建立TCP的连接,HTTP服务器则是监听这个Port来等待客户端发送请求的信息。 HTTP请求的方法HTTP定义了8种方法来发送请求。(1) GET:请求响应,这是最常使用的方法。(2) HEAD:与GET相同的响应,是只要求响
3、应的表头信息。(3) POST:发送数据给服务器处理,数据包含在HTTP信息正文q(4) PUT:上传文件。(5) DELETE:删除文件。(6) TRACE:追踪所收到的请求。(7) OPTIONS:返回服务器所支持的HTTP请求的方法。(8) CONNECT:将HTTP请求的连接转换成透明的TCP/IP通道。 HTTP响应的格式 服务器在处理完客户端所提出的HTTP请求后,会发送下列响应。 (1)第一行是状态码。 (2)第二行开始是其他信息。 HTTP响应的第一行是状态码,包含一个标识状态的数字和一个描述状态的单词。例如:HTTP/1.1 200 0K200是标识状态的数字,OK则是描述状
4、态的单词,这个状态码表示请求成功。所有 HTTP 状态代码及其定义如下。 代码 指示 2xx 成功 200 正常;请求已完成。 201 正常;紧接 POST 命令。 202 正常;已接受用于处理,但处理尚未完成。 203 正常;部分信息 返回的信息只是一部分。 204 正常;无响应 已接收请求,但不存在要回送的信息。 3xx 重定向 301 已移动 请求的数据具有新的位置且更改是永久的。 302 已找到 请求的数据临时具有不同 URI。 303 请参阅其它 可在另一 URI 下找到对请求的响应,且应使用 GET 方法检索此响应。 304 未修改 未按预期修改文档。 305 使用代理 必须通过位
5、置字段中提供的代理来访问请求的资源。 306 未使用 不再使用;保留此代码以便将来使用。 4xx 客户机中出现的错误 400 错误请求 请求中有语法问题,或不能满足请求。 401 未授权 未授权客户机访问数据。 402 需要付款 表示计费系统已有效。 403 禁止 即使有授权也不需要访问。 404 找不到 服务器找不到给定的资源;文档不存在。 407 代理认证请求 客户机首先必须使用代理认证自身。 415 介质类型不受支持 服务器拒绝服务请求,因为不支持请求实体的格式。 5xx 服务器中出现的错误 500 内部错误 因为意外情况,服务器不能完成请求。 501 未执行 服务器不支持请求的工具。
6、502 错误网关 服务器接收到来自上游服务器的无效响应。 503 无法获得服务 由于临时过载或维护,服务器无法处理请求。-HTTP 400 - 请求无效 HTTP 401.1 - 未授权:登录失败 HTTP 401.2 - 未授权:服务器配置问题导致登录失败 HTTP 401.3 - ACL 禁止访问资源 HTTP 401.4 - 未授权:授权被筛选器拒绝 HTTP 401.5 - 未授权:ISAPI 或 CGI 授权失败 HTTP 403 - 禁止访问 HTTP 403 - 对 Internet 服务管理器 (HTML) 的访问仅限于 Localhost HTTP 403.1 禁止访问:禁止
7、可执行访问 HTTP 403.2 - 禁止访问:禁止读访问 HTTP 403.3 - 禁止访问:禁止写访问 HTTP 403.4 - 禁止访问:要求 SSL HTTP 403.5 - 禁止访问:要求 SSL 128 HTTP 403.6 - 禁止访问:IP 地址被拒绝 HTTP 403.7 - 禁止访问:要求客户证书 HTTP 403.8 - 禁止访问:禁止站点访问 HTTP 403.9 - 禁止访问:连接的用户过多 HTTP 403.10 - 禁止访问:配置无效 HTTP 403.11 - 禁止访问:密码更改 HTTP 403.12 - 禁止访问:映射器拒绝访问 HTTP 403.13 -
8、禁止访问:客户证书已被吊销 HTTP 403.15 - 禁止访问:客户访问许可过多 HTTP 403.16 - 禁止访问:客户证书不可信或者无效 HTTP 403.17 - 禁止访问:客户证书已经到期或者尚未生效 HTTP 404.1 - 无法找到 Web 站点 HTTP 404 - 无法找到文件 HTTP 405 - 资源被禁止 HTTP 406 - 无法接受 HTTP 407 - 要求代理身份验证 HTTP 410 - 永远不可用 HTTP 412 - 先决条件失败 HTTP 414 - 请求 - URI 太长 HTTP 500 - 内部服务器错误 HTTP 500.100 - 内部服务器
9、错误 - ASP 错误 HTTP 500-11 服务器关闭 HTTP 500-12 应用程序重新启动 HTTP 500-13 - 服务器太忙 HTTP 500-14 - 应用程序无效 HTTP 500-15 - 不允许请求 global.asa Error 501 - 未实现 HTTP 502 - 网关错误 实验内容1了解HTTP的概念2了解HTTP响应拆分攻击的方式3掌握防范攻击的方法实验步骤1、 学生单击实验拓扑按钮,进入实验场景,进入目标主机,(第一次启动目标主机,还需要安装java控件),如图所示:2.打开虚拟机,输入用户名和密码,用户为Adminsitrator 密码为 123456
10、3.打开浏览器,输入http:/localhost:8080/example_code/ 如图:4、找到“(9)HTTP响应拆分攻击(HTTP Response Splitting)”项,并点击打开。5、点击演示1 打开“演示1”,标签前面的部分是HTTP响应的表头,从标签开始则是链接页面的内容的内容, HTTP响应拆分(HTTP Response Splitting)攻击是由于黑客发送一个经过设计的HTTP请求给服务器,但是目标用户收到的却是两个HTTP响应。第1个HTTP响应并不重要,黑客所在意的是目标用户收到的第2个HTTP响应。第两个HTTP响应是由黑客编写的,并不是来自服务器的真正响
11、应。因此黑客可以经由目标用户来发送两个HTTP请求A和B给服务器,这可以利用电子邮件或图片中的链接来实现。第1个HTTP请求A会产生两个HTTP响应Rl与R2,Rl是真正的服务器响应,R2则是由黑客所设计的响应。Rl会响应给请求A,而R2则是响应给请求B。本来一个HTTP请求应该只会产生一个HTTP响应,但是HTTP响应拆分则是一个请求产生两个响应,因此称为HTTP响应拆分。 详细的过程如图所示。HTTP响应拆分攻击之所烈会发生,是因为Web应用程序将使用者的数据置入HTTP响应表头内,这些使用者的数据是由黑客所设计的。 可能遭受HTTP响应拆分攻击的函数包括以下几个。header();set
12、cookie();session_id();setrawcookie();HTTP响应拆分攻击通常发生在如下两个地方。 Location响应表头:将使用者的数据写入重定向的URL地址内。 Set-Cookie响应表头:将使用者的数据写入cookie内。 Location响应表头用来跳转地址。6、点击 攻击1 Location响应表头跳转到index.php页面。 怎样防护, 1将session.use_only_cookies设置为1,这表示不使用cookie以外的方式来存放session id,这可以避免session固定攻击。 2 使用最新版的PHP 在最新版的PHP中,已经不允许在HTTP表头内出现换行字符。 3隐藏HTTP响应表头如果不想要显示服务器信息的Server响应表头,在httpd.conf文件中找到ServerTokens的设置,将ServerSignature设置为Off,7、实验完毕,关闭虚拟机和所有窗口。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1