快捷搜索:   nginx

PHP漏洞全解(七)-Session劫持

  服务端和客户端之间是通过session(会话)来连接沟通。当客户端的浏览器连接到服务器后,服务器就会建立一个该用户的session。每个用户的session都是独立的,并且由服务器来维护。每个用户的session是由一个独特的字符串来识别,成为session id。用户发出请求时,所发送的http表头内包含session id 的值。服务器使用http表头内的session id来识别时哪个用户提交的请求。

    session保存的是每个用户的个人数据,一般的web应用程序会使用session来保存通过验证的用户账号和密码。在转换不同的网页时,如果需要验证用户身份,就是用session内所保存的账号和密码来比较。session的生命周期从用户连上服务器后开始,在用户关掉浏览器或是注销时用户session_destroy函数删除session数据时结束。如果用户在20分钟内没有使用计算机的动作,session也会自动结束。 php处理session的应用架构

 

 

会话劫持

会话劫持是指攻击者利用各种手段来获取目标用户的session id。一旦获取到session id,那么攻击者可以利用目标用户的身份来登录网站,获取目标用户的操作权限。

攻击者获取目标用户session id的方法:

1)暴力破解:尝试各种session id,直到破解为止。

2)计算:如果session id使用非随机的方式产生,那么就有可能计算出来

3)窃取:使用网络截获,xss攻击等方法获得

会话劫持的攻击步骤

 

 

 

实例

//login.php

<?php

session_start();

if (isset($_POST["login"]))

{

 $link = mysql_connect("localhost", "root", "root")

     or die("无法建立MySQL数据库连接:" . mysql_error());

 mysql_select_db("cms") or die("无法选择MySQL数据库");

 if  (!get_magic_quotes_gpc())

 {

     $query = "select * from member where username='" . addslashes($_POST["username"]) . 

  "' and password='" . addslashes($_POST["password"]) . "'";

 } 

 else

  {

     $query = "select * from member where username='" . $_POST["username"] . 

  "' and password='" . $_POST["password"] . "'";

 }

 $result = mysql_query($query) 

  or die("执行MySQL查询语句失败:" . mysql_error());

 $match_count = mysql_num_rows($result);

 if ($match_count) 

 {

  $_SESSION["username"] = $_POST["username"];

  $_SESSION["password"] = $_POST["password"];

  $_SESSION["book"] = 1;

  mysql_free_result($result);

  mysql_close($link);   

  header("Location: http://localhost/index.php?user=" . 

   $_POST["username"]);

 }

.....

 

//index.php

<?php

// 打开Session

session_start();

<p>

  访客的 Session ID 是:<?php echo session_id(); ?>

</p>

<p>

  访客:<?php echo htmlspecialchars($_GET["user"], ENT_QUOTES); ?>

</p>

<p>

  book商品的数量:<?php echo htmlspecialchars($_SESSION["book"], ENT_QUOTES); ?>

如果登录成功,使用

$_SESSION["username"] 保存账号

$_SESSION["password"] 保存密码

#_SESSION["book"] 保存购买商品数目

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论