基本信息
- https://app.hackthebox.com/machines/Conversor
- 10.10.11.92
端口扫描
22和80:
1 | nmap -sC -sV -Pn 10.10.11.92 |
80
需要加hosts:
1 | 10.10.11.92 conversor.htb |
访问就是登录界面,随意注册登录,是上传nmap的xml报告和xslt文件转换展示的:
Conversor
source code
about里可以下载代码,查看代码知道是解析xml和xslt渲染:
并且install.md里可以知道会自动运行指定目录下任意python文件:
exslt writ file
根据以上信息,搜索,可以找到通过exslt写文件的方法:
- XSLT Injection - Payloads All The Things
https://swisskyrepo.github.io/PayloadsAllTheThings/XSLT%20Injection/#write-files-with-exslt-extension
那如果写入python代码,即可被自动执行
shell
所以就是通过xslt写入python文件,等待触发执行,得到www-data shell:
users.db
常规查看数据库得到hash,破解出密码
1 | www-data@conversor:~/conversor.htb/instance$ sqlite3 users.db |
miao.xslt
1 |
|
user flag
得到的账号密码ssh登录:
提权信息
可以sudo运行一个自定义脚本,代码很长,但直接看帮助文档知道可以指定配置文件,而配置文件解析部分代码会抛出报错信息,从而得到读取文件目的:
提权 & root flag
通过配置文件选项报错读文件
1 | sudo /usr/sbin/needrestart -c /root/root.txt |
shell
根据报错信息也知道是perl解析错误,所以可以使用perl代码来执行任意命令:
shadow
1 | root:$y$j9T$CxUp91Y7aNmCAg.0BrP1N1$NFfbRCjYo56DBVoop2pwSbs9snvrUGR0IEINR4qZfmB:20301:0:99999:7::: |
参考资料
- XSLT Injection - Payloads All The Things
https://swisskyrepo.github.io/PayloadsAllTheThings/XSLT%20Injection/#write-files-with-exslt-extension