灰鸽子远程控制软件

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11420|回复: 7

session文件欺骗(旁注不可跨目录时思路)

[复制链接]
发表于 2013-9-8 21:30:56 | 显示全部楼层 |阅读模式
0x00 session介绍
0x01 利用条件
0x02 利用思路
0x03 漏洞证明
0x04 防范方法

0x00 session介绍

一般的web认证方式都是通过cookie或者session来进行的。众所周知,cookie是存在本地的,客户端可以随意修改;而session是以文本文件形式存储在服务器端的,所以客户端无法修改 Session 内容。实际上在服务器端的 Session 文件,PHP 自动修改 session 文件的权限,只保留了系统读和写权限,而且不能通过 ftp 修改,所以安全得多。服务器上权限的划分是以用户为单位,所以session文件的所有权也是以用户为单位的。一般来说,涉及敏感的权限时,使用session来进行权限验证,比如网站的后台。
Session与客户端交互的方式是session_id。如PHP,在cookie中有一项为PHPSESSID,该session_id与服务端的session记录文件一一对应,相当于Token。这样看来,与session有关的信息有一个客户端可以修改的session_id,利用这个性质我们可以实现session的欺骗和劫持。

以PHP为例,我们首先来看与session相关的几个函数。
session_save_path():定义了服务端session文件存储的路径。参数为空则显示当前路径,参数不为空则定义路径。默认在php.ini中sessions.save_path 项配置。Windows下默认路径:C:\Windows\Temp,linux下默认路径为/tmp。这两个路径的权限较为宽松。在实际中我们也可以根据需要调用函数session_save_path('PATH')修改。

session_id():定义当前session的唯一标识,session_id。参数为空则显示当前session_id,参数不为空则定义session_id。因为做了权限限制,PHP只能取到当前网站(实际上是当前网站在服务端对应的用户,若该用户有多个站,则多个站之间的session可以直接访问)产生的session_id对应的session。

罗嗦了这么多,我们先生成一个session,看看文件里会有什么内容。

<?phpsession_start();if(!session_is_registered('deleter')) $_SESSION['admin']='deleter';echo session_save_path().'\\sess_'.session_id();?>

运行结果为:
C:\Windows\Temp\sess_hadodem9d65kblem793sr9u3g7
文件中内容为


admin|s:7:"deleter";


我们可以看到,session中内容为明文存储的。而有的时候服务器权限没设好的情况下session文件是可以直接看到内容的。

Session文件欺骗的原理是攻击者在取得部分服务器权限后,在session_save_path中找到已通过验证的session文件或者上传伪造的session文件,然后在客户端修改cookie中的session_id,从而欺骗服务器来获取某种更高的权限。

基础的东西介绍完了,接下来看利用条件。

0x01 利用及条件

黑客们攻取网站第一反应是拿后台,毕竟后台权限大。但如果暴不出后台密码,前台也没有什么明显的漏洞呢?接下来想到的是旁注。要是服务器权限设置很死,不能跨目录,提权也提不下呢?C段?这样就越绕越远了。在旁注下之后可以考虑session文件欺骗来进入目标站的后台。

Session文件欺骗的利用条件为:
1. 取得部分服务器权限(同服务器其他网站的webshell)
2. 目标网站敏感权限验证通过session进行
3. session_save_path目录可以访问(或者session_id可以预测或爆破)
可能需要的附加条件为:
4. 目标网站授权好的session文件内容已知,即可以伪造(一般对应开源程序)
5. session中无客户端验证信息

0x02 利用思路

如果目标站符合这几个条件,接下来就是利用了。
只需简单两步找出你路由器宽带密码

首先访问session_save_path对应的目录,找出里面与session相关的文件(以sess_开头),查找文件大小大于0的文件。
若在linux下且能执行命令,可用:

cd /tmp
ls -l sess_*

Windows下对应命令为:

cd C:\Windows\Tempdir /Q sess_*


若是不能执行命令列出所有者,php中有一个fileowner函数可以得到所有者的uid。
观察文件大小和所有者,找出可以利用的文件。找到可能的session文件之后,在客户端修改session_id便能通过敏感权限的验证。如果session_id可以预测或者爆破的话可以在客户端进行相关尝试。
假如没有找到合适的session文件或者session中有客户端验证信息怎么办?如果可以的话,我们本地生成一个然后传到session_save_path对应的目录中。
生成伪造的session文件的方法为本地搭建web程序,通过验证后找到对应的session文件;或者猜测几项可能的验证项,本地生成。

0x03 漏洞证明

check.php


<?phpsession_start();if(!empty($_SESSION['admin'])) echo "success!";?>


Auth.php

<?phpsession_start();if(!session_is_registered('admin'))$_SESSION['admin']='deleter';echo session_save_path().'\\sess_'.session_id();?>
首先访问check.php,没有通过验证。


接下来访问Auth.php


产生验证文件。其内容为:


admin|s:7:"deleter";

将其另存为C:\Windows\Temp\sess_auth文件,即伪造session_id=auth的session文件。

修改客户端session_id。


刷新check.php,通过验证。


0x04 防范方法

1. 自定义session_save_path并设置好权限
2. session中加入客户端验证信息
3. 退出时不要直接关闭浏览器,要使session失效


路由器的管理账号跟密码我知道,因为这路由器是我买的,这样给我带来了查找宽带账号的方便。以前我试过什么星号查看器,宽带账号密码查看器,这都东西对我都不管用。于是我大胆猜想到能不能查看网页源代码,从源代码里面找出宽带账号密码呢,经过我第一遍测试,居然成功了,这未免太...... 2.jpg
灰鸽子使用教程下面看看步骤,第一步当然是登陆路由器,一般输入192.168.1.1或者192.168.0.1就能打开路由器页面,账号密码一般默认是admin(因为路由器分很多种所有有部分默认账号密码不是admin而是其他的,由于很多这里就不一一介绍了)进入以后找到网络参数-WAN口设置,然后右边会出现账号,以及星号密码,这里显示的是星号密码,你是无法查看的,就算你用工具也不能查看。这可能是制作商故意这样设计的,这个页面每一秒钟刷新一次。
到了这个页面以后,我们按F12(我用的是IE9,所以直接按F12,其他浏览器自己测试)以后网页底部会出现一个框框,框框里面就是网页各种源代码了,这里我已经找出宽带账号密码储蓄在哪一项了,所以直接点开那一项就能看见账号密码了。这两项分别为:

<frameset rows="*" cols="155,30,*" border="0" frameBorder="NO" frameSpacing="0">

<frame name="mainFrame" src="/userRpm/MainRpm.htm">


评帖赚银币(0) 收起
回复

使用道具 举报

发表于 2014-7-9 13:45:55 | 显示全部楼层
没找到我想要的内容~哎。。
评帖赚银币(0) 收起
回复 支持 反对

使用道具 举报

发表于 2014-7-10 20:13:36 | 显示全部楼层
这里应该多弄点入侵技术。灰鸽子入侵技术。
评帖赚银币(0) 收起
回复 支持 反对

使用道具 举报

发表于 2014-7-10 21:14:51 | 显示全部楼层
原来现在捆绑方式玩灰鸽子过时了啊.
评帖赚银币(0) 收起
回复 支持 反对

使用道具 举报

发表于 2014-7-12 11:02:32 | 显示全部楼层
路过路过。
评帖赚银币(0) 收起
回复 支持 反对

使用道具 举报

发表于 2014-9-20 14:46:48 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2014-9-20 22:04:45 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2014-9-21 13:51:35 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|灰鸽子远程控制软件|灰鸽子远程控制软件 ( 鲁ICP备14000061号-4 )

GMT+8, 2024-4-25 02:46 , Processed in 0.092820 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表