Year of the Dog
谁知道呢?狗咬了一口!
端口扫描
循例nmap
Web枚举
进80
用gobuster扫了一圈没有任何发现,图像也没有隐写
在主页的请求头的cookie有一个id
改成其他错误值会导致异常,看见叫id,习惯性加个了引号
爆库
爆表
爆字段
获取信息
然而这些东西并没有什么用
尝试写入文件,发现有waf
payload转hex
通过lines terminated by追加内容
写入成功,直接用python3reverse shell
横向移动
在dylan的家目录有一个work_analysis文件
这看着像是ssh日志,并且记录了被ssh爆破的信息
过滤dylan,dylan后应该就是密码,它一定是忘记回车了
ssh直接登,同时拿到user flag
权限提升
在根目录下有个gitea
本地开了个3000
ssh做一下本地端口转发
进本地3000,用dylan的凭据登录,有2fa
创建一个账户
在/gitea目录下有个gitea.db文件,并且dylan是所有者
下载到攻击机查看
由于我们是db文件的所有者,我们可以修改数据库,将我们的账户设置成admin,再覆盖掉原文件
但这样做似乎并不行
再找到two_factor表把2fa code给删掉,然后再登录dylan
依然不行,我不理解
从官方文档找到,gitea允许http base身份验证,这意味着我们可能可以绕过正常登录时需要验证2fa
成功进来,再使用burp的匹配和修改规则为我们的每个请求自动添加上该请求头
在一个仓库里有几个githook,这由sh脚本编写,这意味着能利用其来执行命令
写payload
随便修改readme.md然后提交
同时getshell
查看sudo -l,直接到root,但在docker里
在根目录下有个/data, 与宿主机/gitea一致
他们是连通的, 应该是挂载过去的
在docker中我们是root,那么就可以直接cp一个带root suid的bash过去,dylan就可以利用其提升到root
由于docker里的bash在宿主机用不了,需要先在宿主机复制个bash过去再由docker里的root操作
dylan利用
getroot