基本信息
lab地址:https://www.hackthebox.eu/home/machines/profile/230
端口扫描

只有80和22端口
80

注册和登录,因为没有账号,就先随便注册一个, 登录进去后发现管理员邮箱:

管理员账号尝试弱口令无效,扫目录能够发现admin登录入口,没有账号密码。

sql截断
前端有校验邮箱长度,如果对注册进行fuzz,过长的email注册成功但是没法登陆,数据可能截断了,考虑尝试sql截断攻击。
这样注册一个新账号,截断导致可以直接使用admin@book.htb进行登录


PDF XSS LFI
用户界面可以提交文件,管理界面导出pdf,里面链接是用户上传的文件被转换为pdf:



另外参数可以XSS,导出pdf是解析后的内容,那么可以考虑pdf xss读文件,尝试读取/etc/passwd文件,发现一个reader用户:


user ssh key
读取SSH私钥,SSH登录:

直接复制粘贴的话格式问题比较坑,可以用这个直接转:
https://github.com/pdfminer/pdfminer.six
user flag
登录进去得到user flag:

搜集提权所需信息
lse/linpeas/pspy之类的都可以,这里用的pspy
https://github.com/DominicBreuker/pspy
能够发现循环执行:
1 | CMD: UID=0 PID=46156 | /usr/sbin/logrotate -f /root/log.cfg |
logrotate exploit
google能搜到对应的利用工具:
https://github.com/whotwagner/logrotten
基本就是日志变动会触发,然后执行我们那边的payload,但反弹shell很容易断,我们可以直接把root用户的ssh密钥复制到其他目录:


root flag
然后使用root用户登录,得到root flag:

参考资料
- SQL截断攻击 | Err0r
https://err0rzz.github.io/2018/02/01/SQL%E6%88%AA%E6%96%AD%E6%94%BB%E5%87%BB/ - Local File Read via XSS in Dynamically Generated PDF
https://www.noob.ninja/2017/11/local-file-read-via-xss-in-dynamically.html - Hackthebox Book - YouTube
https://www.youtube.com/watch?v=VvBJ4XW0spQ - https://github.com/whotwagner/logrotten
- https://github.com/DominicBreuker/pspy