Session保存路径可列出引发的安全问题

现在虚拟主机是越来越安全了,虽然是不能直接跨到对方网站目录,但是可以去读对方的Session
下面我们做个演示,有localtest1. 91ri.org和localtest2. 91ri.org

假设我们设置了baseopendir 不能随意跨,也不能拿到服务器权限的时候。
有3个PHP
一个是建立SESSION 一个是清除SESSION 还有一个是显示SESSION


我们在网站1中建立session(用不同的浏览器,以保证隔离)

在网站2中建立session

我们在A浏览器中显示Session1

再显示SESSION2

当然,session2 是显示不出来的,因为他没在这个浏览器建立session
我们用webshell打开SESSION目录

我们的目标是盗用网站2的session

用根据文件所有者,文件大小来判断出网站2的SESSION
最后修改session值来盗用网站2的session

修复方法:
1.在网站程序session开始之前指定session保存路径,比如在网站建立个文件夹,叫sEsS10n-1213213124sdkfsd 权限为可写,之后在网站程序SESSION开始之前
session_save_path(‘sEsS10n-1213213124sdkfsd’);
session_start();
指定session保存路径。
2.养成良好的习惯,用完后台之后及时点退出,别直接关浏览器
3.在SESSION保存IP地址,如果IP地址不一样,则强制退出,不过如果在使用后台时IP变了的话,这样会导致误退出。

本文转自safe121网络技术博客 由网络安全攻防研究室(www.91ri.org)信息安全小组收集整理。