L003001017HTTP攻击与防范会话劫持攻击.docx

上传人:b****8 文档编号:23826612 上传时间:2023-05-21 格式:DOCX 页数:17 大小:743.36KB
下载 相关 举报
L003001017HTTP攻击与防范会话劫持攻击.docx_第1页
第1页 / 共17页
L003001017HTTP攻击与防范会话劫持攻击.docx_第2页
第2页 / 共17页
L003001017HTTP攻击与防范会话劫持攻击.docx_第3页
第3页 / 共17页
L003001017HTTP攻击与防范会话劫持攻击.docx_第4页
第4页 / 共17页
L003001017HTTP攻击与防范会话劫持攻击.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

L003001017HTTP攻击与防范会话劫持攻击.docx

《L003001017HTTP攻击与防范会话劫持攻击.docx》由会员分享,可在线阅读,更多相关《L003001017HTTP攻击与防范会话劫持攻击.docx(17页珍藏版)》请在冰豆网上搜索。

L003001017HTTP攻击与防范会话劫持攻击.docx

L003001017HTTP攻击与防范会话劫持攻击

课程编写

类别

内容

实验课题名称

SessionHijacking会话劫持攻击

实验目的与要求

1.了解Session的概念

2.了解会话劫特攻击的方式

3.掌握防范攻击的方法

实验环境

VPC1(虚拟PC)

Windowsserver2003

VPC1连接要求

PC网络接口,本地连接与实验网络直连

软件描述

1、学生机要求安装java环境

2、vpc安装windwos系统

实验环境描述

1、学生机与实验室网络直连;

2、VPC1与实验室网络直连;

3、学生机与VPC1物理链路连通;

预备知识

什么是Session

服务器端与客户端之间是通过session(会话)来连接沟通的。

当客户端的浏览器连接到服务器后,服务器就会建立一个该用户的session。

每个用户的session都是独立的,并且由服务器来维护。

每个用户的session是由一个独特的字符串来识别,这个独特的字符串称为sessionid。

当用户从浏览器向服务器发出请求时,所发送的HTTP表头内就包含sessionid的值。

服务器使用HTTP表头内的sessionid值来识别是由哪一个用户提交的请求。

Session保存的是每个用户个人的数据,例如会员登录时输入的账号和密码。

在会员登录时验证账号和密码后,一般的Web应用程序即会使用session来保存通过验证的账号和密码。

在转换不同的网页时如果需要验证用户的身份,就使用session内所保存的账号和密码来比较。

因此用户的账号和密码只会在一开始登录时输入一次,在其余的用户登录期间就使用session来比较。

Session的生命周期是从用户自浏览器连接上服务器后开始,在用户关掉浏览器或是注销网站时使用session_destroy函数删除session数据时结束。

如果用户在20分钟内没有使用计算机的动作,session也会自动结束。

实验内容

1.了解Session的概念

2.了解会话劫特攻击的方式

3.掌握防范攻击的方法

实验步骤

1、学生单击实验拓扑按钮,进入实验场景,进入目标主机,(第一次启动目标主机,还需要安装java空间),如图所示:

2.打开虚拟机,输入用户名和密码,用户为Adminsitrator密码为123456

3.打开浏览器,输入http:

//localhost:

8080/example_code/如图:

4.点击打开(7)Session会话劫持攻击(Sessionhijacking)如图:

5.在PHP应用架构中,在执行sessionstart函数后就会建立一个session。

sessionid可以由用户自己来指定,也可以由服务器随机产生一个32个字符长度的字符串,sessionid的字符串长度是由php.ini设置的。

点击演示1,如图session-id.php文件会显示当前session的id:

(1)session_id函数用来获得或设置当前session的id,用法如下:

stringsession_id([stringid])

(2)id是要设置的新sessionid值。

session_id函数返回sessionid的字符串,sessionid的字符串只能由a~z,A~Z,或O~9的字符所组成。

(3)图中reset-session-id.php文件会指定当前session的id:

注意,session_id函数必须在session_start之前调用,才能设定当前session的id。

点击攻击1.reset-session-id.php文件的执行结果如图:

6.Session的名称

在php.ini设置文件中,session的名称默认是PHPSESSID。

session的名称可以由用户自己来指定,或是使用PHP的默认值PHPSESSID。

点击演示2session-name.php文件会显示当前session的名称:

如图

(1)session_name函数用来获得或设置当前session的名称,用法如下:

stringsession_name([stringname])

(2)name是要设置的新名称。

Session的名称默认是PHPSESSID,用来在cookie或URL中绑定一个sessionid的值。

例如:

http:

//localhost:

8080/example_code/source/code7/session-name.php?

PHPSESSID=1234

用来指定sessionid等于"1234"。

(3)reset-session-name.php文件更改当前session的名称:

reset-session-name.php

7.Session的名称只能由字母或数字组成,而且必须简短易懂。

在每次送出HTTP请求时,session的名称会重新设置为默认值PHPSESSID。

因此要更改session的名称时,必须在每次发送HTTP请求时都要调用session_name函数。

点击演示3reset-session-name.php文件的执行结果如图。

8.PHP的Session机制

在PHP应用中,当您调用session_start函数来初始化session的数据时,PHP首先会检查在当前的HTTP请求中是否包含sessionid。

如果有sessionid,PHP就会读取这个sessionid的session数据。

如果在当前的请求中没有包含sessionid,PHP就会随机产生一个。

要指定sessionid的方式有以下3种。

(1)URL参数。

(2)表单的隐藏属性的文本框。

(3)cookie。

URL参数

可以在URL参数中指定sessionid的值,

设置php.ini中的session.use_trans_sid=1,session.use_cookies=0,session.use_only_cookies=0。

如图:

修改php.ini文件后,需重启apache服务。

点击桌面上的xampp,先点击apache服务的stop按钮,然后再start如图:

点击演示4,如图:

用来将sessionid的值指定为1234。

set-session-id-url.php文件的内容在c:

/wamp/www/example_code/source/code7/下

点击攻击4执行结果如图:

9.表单中隐藏属性的文本框

可以在表单的隐藏属性的文本框中设置sessionid,例如:

c:

/wamp/www/example_code/source/code7/set-session-id-hidden.html

点击演示6如图:

用来将sessionid的值指定为5678,执行结果如图:

会话劫持攻击

会话劫持(SessionHijacking)攻击是指黑客利用各种手段来获取目标用户的sessionid。

sessionid是Web应用程序用来识别用户的工具,如果黑客有了目标用户的sessionid,他就可以存取目标用户在Web应用程序中的session变量值。

这些session变量是相当重要的数据,如购物网站中用户所购买的商品名称、数量和付款方式等都是保存在session变量内。

如果黑客使用目标用户的sessionid来登录网站,他就可以利用目标用户的身份来购买商品。

当然最后的账,还是算在目标用户身上。

黑客获取目标用户的sessionid的方法有以下3种。

(1)暴力破解(Bruteforce):

黑客尝试许多的sessionid值,直到破解为止。

(2)计算:

如果sessionid是使用非随机的方式产生,那么就有可能计算出来。

(3)窃取:

使用网络截获、安装病毒或XSS攻击等方法来获得。

攻击的步骤

会话劫持攻击的步骤如图所示。

步骤1:

目标用户登录有会话劫持漏洞的网站。

步骤2:

网站给予目标用户一个sessionid。

步骤3:

黑客使用某种方法来获得目标用户的sessionid。

步骤4:

在目标用户的登录期间,黑客使用目标用户的sessionid来登录网站。

黑客修改目标用户的session变量,来达到攻击的目的。

点击打开演示7,现在来看图,这是一个常见的简单形式的会员登录的界面。

会员登录的流程是让使用者输入账号和密码来登录网站,入口网页的程序会将来访者输入的账号和密码与数据库中的记录比较,判断来访者的信息是否记录在数据库中。

这段程序代码在c:

\xampp\htdocs\example_code\source\code7\ex7-1-login.php中

如果登录成功.ex7-1-login.php文件会使用下列session变量。

●$_SESSION["username"]:

用来保存用户输入的账号。

●$_SESSION["password"]:

用来保存用户输入的密码。

●$_SESSION["book"]:

这代表在购物网站内有一样商品的名称是book,$_SESSION["book"]是用户所购买的book商品的数量。

现在在图中的“账号”文本框中输入“daniel”,在“密码”文本框中输入“123456”。

然后单击图的【登录】按钮,选择否,就会执行c:

/wamp/www/example_code/source/code7/ex7-l.php文件,如图所示。

10、实验完毕,关闭虚拟机和所有窗口。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 交通运输

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1